Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

Les deux révisions précédentes Révision précédente
Prochaine révision
Révision précédente
prog:lazarus:classes:tthread [23/04/2023 14:52]
thierry [TThreadList : Partage de TList entre Threads]
prog:lazarus:classes:tthread [23/04/2023 17:44] (Version actuelle)
thierry [Appel depuis l'application]
Ligne 1: Ligne 1:
 ====== TThread ====== ====== TThread ======
 +===== Titre =====
 +==== Code du Thread ====
 +
 +<code delphi code du Thread>
 +{ TMyThread }
 +procedure TMyThread.Execute;​
 +begin
 +  {... fait quelque chose dans un thread ...}
 +  Synchronize(@SynchroEnum);​ // Appel une procedure synchronisée avec le thread principal
 +end;
 +
 +
 +procedure TMyThread.SynchroEnum;​
 +begin
 +  {... Fait quelque chose synchronisé avec le thread principal ...}
 +end;
 +
 +constructor TMyThread.Create(CreateSuspended:​ boolean);
 +begin
 +  FreeOnTerminate := True;
 +  inherited Create(CreateSuspended);​
 +end;
 +
 +</​code>​
 +==== Appel depuis l'​application ​ ====
 +<code delphi>
 +  FThread := TMyThread.Create(True);​ // Create Suspended
 +  FThread.OnTerminate:​=@ReceptThreadTerminate;​
 +  FThread.Start;​ // et non pas Execute !
 +  ​
 +</​code>​
 +==== A Savoir... ====
 +On appel pas directement ''​Execute''​ mais on démarre le Thread avec ''​Start''​.
 +
 +On appel les méthodes "​synchronisée"​ avec ''​Synchronize(@MaProcedure)''​. Donc il ne peut pas y avoir de paramètres a ces procédures...
 +
 +
 +
 +
 +
 +
 +
 ===== TThreadList : Partage de TList entre Threads ===== ===== TThreadList : Partage de TList entre Threads =====
 Avec TThreadList -> [[https://​www.freepascal.org/​docs-html/​rtl/​classes/​tthreadlist.html]] Avec TThreadList -> [[https://​www.freepascal.org/​docs-html/​rtl/​classes/​tthreadlist.html]]
  
-====== Sources & Ressources ======+