Einzelnen Beitrag anzeigen

silver-moon-2000

Registriert seit: 18. Feb 2007
Ort: Schweinfurt
170 Beiträge
 
Delphi XE Professional
 
#11

Re: Thread terminated nicht, obwohl OnTerminate aufgerufen

  Alt 11. Apr 2008, 08:56
Zitat von alzaimar:
Also:
1. MyThread.FreeOnTerminate := False;
2. Spendiere dem Thread eine 'Public Property Done : Boolean'
3. Im TMyThread.Create: 'Done := False'
4. Letzte Zeile der 'Execute-Methode' : 'Done := True'
5. Nun kannst Du vom Haupthtread prüfen, ob der Thread fertig ist.
6. Freigeben des Threads nicht vergessen.
alzaimer, Du ruiniert mir die Freude, dass es gerade so schön geklappt hat (Ironie!) . An eine Property hatte ich gar net gedacht. Wird sofort umgesetzt

Zitat von alzaimar:
P.S.: Die Eigenschaft 'Terminated' dient als Signal von außen. Du musst in der Execute-Methode diese Eigenschaft prüfen, wenn Du den Thread beenden möchtest. Die Eigenschaft wird NICHT gesetzt, wenn der Thread fertig ist.
Wieder was gelernt, danke.
(Selbsterkenntnis: Hätte mir vermutlich auch ein Blick in die OH weitergeholfen)

Tobias
Bitte nicht hauen , ich weiß es nicht besser
  Mit Zitat antworten Zitat