![]() |
Frage zu Thread Execute
Hi DP'ler,
Was genau passiert eigentlich mit einem Thread, der seine Execute Methode einmal durchlaufen hat? Er ist anscheinend weder nil, noch kann ich ihn dazu bewegen, Execute nochmals auszuführen. Das wäre aber viel geschickter, als ihn freizugeben und dann nochmal erstellen zu müssen... kann ich den Thread irgendwie dazu bewegen, Execute nochmal auszuführen? Grüße, Dani |
Re: Frage zu Thread Execute
Die Execute Methode wird genau wie jede andere Methode abgearbeitet. Das heißt, soll etwas mehr mals abgearbeitet werden, muss du es wie gewöhnlich auch in eine Schleife packen.
|
Re: Frage zu Thread Execute
Stimmt, das macht irgendwie Sinn. Ich werd mal schauen, wie es sich über eine Schleife machen läßt... Danke Luckie :thuimb:
|
Re: Frage zu Thread Execute
Wenn die Execute-Methode abgelaufen ist, dann ist der Thread terminiert. Du kannst ihn nun freigeben oder eine Nachbehandlung durchführen, dieses geht z. B. in TThread.OnTerminate.
Alternativ kannst du auch beim Erzeugen des Threads TThread.FreeOnTerminate = true setzen, dann wird der Thread nach der Terminierung automatisch beendet und der Speicher freigegeben. Wichtig ist in diesem Fall, dass du auch in TThread.OnTerminate nicht mehr auf den Thread zugreifen darfst, da du sonst mit wilden Pointern um dich schießt. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 15:27 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz