salut im nouveau à delphi. comment utiliser les deux fonctions en même temps? fonction a (...): nombre entier; fonction b (...): nombre entier;comment utiliser deux fonction en même temps?
parce que b attend jusqu'à ce que finisse.
salut im nouveau à delphi. comment utiliser les deux fonctions en même temps? fonction a (...): nombre entier; fonction b (...): nombre entier;comment utiliser deux fonction en même temps?
parce que b attend jusqu'à ce que finisse.
vous avez probablement besoin de Multi-threading. vous pouvez commencer avec le tutoriel dans about.com
Ceci est fait en utilisant des threads. C'est un sujet avancé, cependant, et vous pouvez d'abord apprendre les bases de la programmation avant de commencer avec les discussions.
+1 pour "sujet avancé". L'OP pourrait même ne pas vouloir l'exécution parallèle, pourtant c'est ce qui semble être demandé. –
il y a aussi la bibliothèque "AsyncCalls" qui fait ce dont vous avez besoin. S'il vous plaît jeter un oeil à http://andy.jgknet.de/blog/?page_id=100
En supposant Delphi 2009 ou au-dessus et en utilisant OmniThreadLibrary:
uses OtlParallel;
var
aRes: integer;
bRes: integer;
begin
Parallel.Join(
procedure begin
aRes := a();
end,
procedure begin
bRes := b();
end);
end.
Ou pour les puristes qui n'aiment pas les fonctions anonymes:
uses OtlParallel;
var
aRes: integer;
bRes: integer;
procedure CalcA;
begin
aRes := a();
end;
procedure CalcB;
begin
bRes := b();
end;
begin
Parallel.Join(CalcA, CalcB);
end.
(Il font du travail du même chose si CalcA et CalcB sont des méthodes, pas des procédures simples.)
Comme d'autres l'ont indiqué, le domaine du multithreadi La programmation est pleine de danger. Assurez-vous que vos deux fonctions ne modifient pas les mêmes structures, qu'elles ne transmettent pas les données à une même destination et, surtout, qu'elles n'utilisent aucune interface graphique.
merci pour les liens ... c'est un bon démarrage .. –