{ 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;