Beendigung eines Threads
-
Wieder einmal habe ich eine Frage zu Threads ich verwende soeinen in meinem neusten Projekt um die Zeit mitlaufen zu lassen. ich arbeitete bisher mit dem Builder 1.0(ich weis der ist echt alt) und heute bin ich auf die Enterprise Edition von 6.0 umgestiegen.
Bisher(im Builder 1.0) habe ich den Thread mit Suspend(); schlafen gelegt und ihn danach mit ~Zeitmessung(so heißt meine Threadklasse) beendet und den Speicher freigegeben.
Im Builder 1.0 gab es beim kompilieren und ausführen keine Probleme alles lief zu meiner Zufriedenheit.
Heute aber habe ich das Projekt importieren lassen und ich wurde daraufhingewiesen das sleep() veraltet ist, wusste ich nicht aber wieder zum Thema auf jedenfall neu compiliert und er hängt sich beim beenden auf. Ich habe mich gleich auf die Suche gemacht und habe entdeckt das er sich beim Versuch ~Zeitmessung(); aufzurufen aufhängt. Wie kann ich den Thread dennoch beenden un den Speicher freigeben ohne einen Absturz zu kassieren.
Schonmal danke für eure Hilfe.
-
Hallo
schau dir mal TThread::Terminate() an, wenn du das nicht schon verwendest.
bis bald
akari
-
Gut danke ich dachte das funktioniert nicht, da er mir zuerst was sagte von wegen diese Funktion wäre protected bzw. private. Aber jetzt geht es komischerweise.
Nagut ich glaube das es geht liegt daran, dass ich die Schleife des Threads checken lasse ob Terminated==true; und dann soll er beenden was er auch macht.Danke für die Hilfe akari.