Delphi-PRAXiS
Seite 2 von 2     12   

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi [solved]Thread terminated nicht, obwohl OnTerminate (https://www.delphipraxis.net/111869-%5Bsolved%5Dthread-terminated-nicht-obwohl-onterminate.html)

silver-moon-2000 11. Apr 2008 07:56

Re: Thread terminated nicht, obwohl OnTerminate aufgerufen
 
Zitat:

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!) :mrgreen: . An eine Property hatte ich gar net gedacht. Wird sofort umgesetzt

Zitat:

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)

:dp:

sirius 11. Apr 2008 07:58

Re: Thread terminated nicht, obwohl OnTerminate aufgerufen
 
Noch Ergänzung:

Das Ereigbniss OnTerminate wird mit Synchronize aufgerufen. (Was ja zu den bekannten Problemen von TThread in einer DLL führt). Aber hier kannst du problemlos in OnTerminate auf die VCL zugreifen. Du bist ja sowieso im Mainthread.

silver-moon-2000 11. Apr 2008 08:03

Re: Thread terminated nicht, obwohl OnTerminate aufgerufen
 
Zitat:

Zitat von sirius
Noch Ergänzung:

Das Ereigbniss OnTerminate wird mit Synchronize aufgerufen. (Was ja zu den bekannten Problemen von TThread in einer DLL führt). Aber hier kannst du problemlos in OnTerminate auf die VCL zugreifen. Du bist ja sowieso im Mainthread.

Ich habe eingfach gestern in geistiger Umnachtung einfach alles VCL ähnliche im Thread-Bereich auskommentiert, ohne nachzudenken, was ich genau tue (war mir irgendwie zu spät gestern)
Danke für Deine Klarstellung.


Von meiner Seite aus sehe ich das Thema als sogut wie erledigt an.
Natürlich freue ich mich über (konstruktive :lol: ) Kommentare jeder Art.


Alle Zeitangaben in WEZ +1. Es ist jetzt 02:51 Uhr.
Seite 2 von 2     12   

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz