Table des matières

TThread

Titre

Code du Thread

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;

Appel depuis l'application

  FThread := TMyThread.Create(True); // Create Suspended
  FThread.OnTerminate:=@ReceptThreadTerminate;
  FThread.Start; // et non pas Execute !
 

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

Avec TThreadList → https://www.freepascal.org/docs-html/rtl/classes/tthreadlist.html

Sources & Ressources