Thema: Delphi Arbeiten mit TThreadList

Einzelnen Beitrag anzeigen

Benutzerbild von Sir Rufo
Sir Rufo

Registriert seit: 5. Jan 2005
Ort: Stadthagen
9.454 Beiträge
 
Delphi 10 Seattle Enterprise
 
#25

AW: Arbeiten mit TThreadList

  Alt 25. Jun 2014, 17:50
Es sollte reichen, wenn du die Instanzen nach dem inherited freigibst.
Delphi-Quellcode:
destructor TFindSnapPointsThread.Destroy;
begin

  inherited;
  FFindSnapPoints.Free;
end;
Um hier aber etwas wirklich konkretes zu sagen, musst du dir dringend einmal anschauen, was in TThread.Destroy so passiert.

In den neueren Delphi-Versionen wird dort eben genau das alles gemacht (Terminate ,WaitFor ,...).

Ein Thread ruft im Destroy ganz von alleine das Delphi-Referenz durchsuchenTThread.Terminate auf, dann ein TThread.WaitFor .

Fazit: Die Thread-Klasse sauber aufbauen, dann klappt das wie von selber
Na ja. Ich hatte immer Probleme (vielleicht älteres Delphi), einen Thread einfach so freizugeben. Erst seitdem ich Terminate,WaitFor,Free aufrufe, klappt es. Vielleicht ist das ja auch Aberglaube.
Das ist bei Delphi 7 wohl noch so, sollte aber auch durch einen Blick in TThread.Destroy zu klären sein, ob das wirklich nötig ist, oder ob es einfach reicht, den echten Destructor abzuwarten und dann erst alles einzureißen (s.o.)
Kaum macht man's richtig - schon funktioniert's
Zertifikat: Sir Rufo (Fingerprint: ‎ea 0a 4c 14 0d b6 3a a4 c1 c5 b9 dc 90 9d f0 e9 de 13 da 60)
  Mit Zitat antworten Zitat