Thema: Delphi Thread nicht terminiert?

Einzelnen Beitrag anzeigen

CCRDude

Registriert seit: 9. Jun 2011
677 Beiträge
 
FreePascal / Lazarus
 
#2

AW: Thread nicht terminiert?

  Alt 1. Feb 2013, 10:06
Mit Option freeonterminate=true
[...]
Wenn ich irgendwann später MThread.terminated abfrage, so ist dieser immer noch aktiv.
[...]
Mache ich allerdings beim FormClose die Zeile: if assigned(MThread) then freeandnil(MThread) rein, knallt es.
FreeOnTerminate bedeutet nicht, dass alle Variablen, die diesen Thread referenzieren, auf nil gesetzt werden.

Somit greift die Abfrage auf MThread.Terminated evtl. auf ein nicht mehr existierendes Objekt zu - Fehler!

Und im FormClose ist MThread auch dann noch Assigned, wenn der Thread selber freigegeben ist, gleiches Problem!

Vllt. solltest Du MThread im OnTerminated auf nil setzen, bzw. das Konzept weiter überdenken.
  Mit Zitat antworten Zitat