Thema: Delphi TThread - OnTerminate

Einzelnen Beitrag anzeigen

Benutzerbild von DataCool
DataCool

Registriert seit: 10. Feb 2003
Ort: Lingen
909 Beiträge
 
Delphi 10.3 Rio
 
#1

TThread - OnTerminate

  Alt 23. Sep 2003, 14:38
Hi Leute,

wenn ich in einem Thread im Constructor Create verschiedene Objekte erzeuge, dann müssen diese Objekte logischerweise auch irgentwann mal wieder freigegeben werden.

Dazu erstelle ich eine Procedure CleanUp diese weise ich im Constructor des Threads wie folgt zu :

OnTerminate := Cleanup;

In Cleanup werden dann alle erzeugten Objekte wieder freigegen.

Funktinoiert auch alles einwandfrei !!

Jetzt kommt das Problem, wenn ich im Execute-Code den Thread mit Sleep(60000) den Thread für 60 Sek. schlafen lege, ist dieser ja nicht mehr zuteilungsfähig.

Wenn ich jetzt meine Applikation beende, wird auch der entsprechende Process beendet und damit alle laufenden Threads die zu diesem Process gehören.
Meine Frage ist, ob bei dieser Art der Beendigung meine Procedure CleanUp ausgeführt wird oder nicht ?
Wenn nicht, hätte ich ja ein Speicher-Leck ??!!!
Wie kann ich das umgehen ?

Gruß Data
Der Horizont vieler Menschen ist ein Kreis mit Radius Null, und das nennen sie ihren Standpunkt.
  Mit Zitat antworten Zitat