Einzelnen Beitrag anzeigen

alzaimar
(Moderator)

Registriert seit: 6. Mai 2005
Ort: Berlin
4.956 Beiträge
 
Delphi 2007 Enterprise
 
#10

Re: Thread terminated nicht, obwohl OnTerminate aufgerufen

  Alt 11. Apr 2008, 07:26
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.

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.
"Wenn ist das Nunstruck git und Slotermeyer? Ja! Beiherhund das Oder die Flipperwaldt gersput!"
(Monty Python "Joke Warefare")
  Mit Zitat antworten Zitat