Einzelnen Beitrag anzeigen

WladiD

Registriert seit: 27. Jan 2006
Ort: Celle
135 Beiträge
 
Delphi 10.4 Sydney
 
#6

AW: Thread - warten bis alle Berechnungen fertig

  Alt 29. Aug 2011, 16:39
Da das Event OnTerminate im Kontext eines Threads läuft darf man nicht einfach auf die VCL direkt zugreifen.
Das stimmt nicht. OnTerminate ist ein synchronisierter Event, d.h. von dort aus kann man völlig problemlos auf die VCL zugreifen.

Hier der Code-Ausschnitt aus Classes.pas (D2007):
Delphi-Quellcode:
procedure TThread.CallOnTerminate;
begin
  if Assigned(FOnTerminate) then FOnTerminate(Self);
end;

procedure TThread.DoTerminate;
begin
  if Assigned(FOnTerminate) then Synchronize(CallOnTerminate);
end;
Waldemar Derr
  Mit Zitat antworten Zitat