Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi Warten bis Threads beendet sind/Prüfen ob Thread beendet ist (https://www.delphipraxis.net/21339-warten-bis-threads-beendet-sind-pruefen-ob-thread-beendet-ist.html)

SirThornberry 1. Mai 2004 08:33


Warten bis Threads beendet sind/Prüfen ob Thread beendet ist
 
Hallo,

gibts ne möglichkeit im Destroy zu warten bis alle Threads beendet sind die der klasse erzeugt wurden? Und wie kann ich prüfen ob ein Thread beendet wurde oder noch läuft??

Problem ist das ich öfters einen Fehler bekomme wenn ich eine Komponente freigebe weil da noch ein Thread läuft der auf die Komponente malt. Jetzt dachte ich mir das ich dieses problem beheben könnte wenn ich einfach im Destroy warte bis auch der/die Threads beendet wurden

[Edit1]Titel geändert[/Edit1]

Meflin 1. Mai 2004 09:22

Re: Warten bis Threads beendet sind/Prüfen ob Thread beendet
 
niht die eleganteste lösung aber geht: einfach eine globale variable setzen und den wert der variable abfragen, dann weist du ob der thread noch läuft!

Sharky 1. Mai 2004 09:31

Re: Warten bis Threads beendet sind/Prüfen ob Thread beendet
 
Zitat:

Zitat von Meflin
niht die eleganteste lösung aber geht: einfach eine globale variable setzen und den wert der variable abfragen, dann weist du ob der thread noch läuft!

Am einfachsten wäre das dann sicher eine Variable vom Typ Boolean zu nehmen und diese beim erzeugen eines neuen Threads um eins zu erhöhen und beim beenden eines Threads wieder um 1 zu verringen.

kiar 1. Mai 2004 10:48

Re: Warten bis Threads beendet sind/Prüfen ob Thread beendet
 
schau dir mal das thread beispiel von delphi an, die machen es ähnlich wie S>harky vorgeschlagen hat.

raik

SirThornberry 1. Mai 2004 10:50

Re: Warten bis Threads beendet sind/Prüfen ob Thread beendet
 
Ok, dachte es gibt irgendwie ne möglichkeit auf alle Threads beim beenden zu warten. Naja, muss ich wohl doch meinen Thread als membervariable irgendwie speichern

Luckie 1. Mai 2004 12:51

Re: Warten bis Threads beendet sind/Prüfen ob Thread beendet
 
Kuck dir mal die methode WaitFor vom VCL Thread-Objekt an bzw WaiteForSingleObject von der API.

SirThornberry 1. Mai 2004 12:52

Re: Warten bis Threads beendet sind/Prüfen ob Thread beendet
 
@Luckie: dazu müsste ich dann wohl auch erst alle Threads irgendwie in ner liste speichern um dann mit dem waitfor zu arbeiten... Aber wird mir wohl nix anderes übrig bleiben


Alle Zeitangaben in WEZ +1. Es ist jetzt 14:49 Uhr.

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