Thema: Delphi Thread vorzeitig beenden

Einzelnen Beitrag anzeigen

Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.071 Beiträge
 
Delphi 12 Athens
 
#2

Re: Thread vorzeitig beenden

  Alt 23. Mai 2010, 16:16
.Terminate setzt nur ein Bit, welches der Programmierer auswerten muß.
(dieses wird auch in jedem guten Thread-Tutorial gezeigt)
Delphi-Quellcode:
// in Execute
begin
  while not Terminated do begin
    [...]
  end;
end;
In deinem Fall also:
Delphi-Quellcode:
begin
  FreeOnTerminate := True; // statt Destroy
  For I := 1 to param1 do begin
    if Terminated then Break;
    [...]
  end;
end;
Zitat:
Ich habe es bereits versucht mit, while not terminated do begin
Und wie hattest du das versucht?


Destroy ruft man nicht direkt auf.
Dafür gibt es Free und ein Objekt löschen, wärend dieses verwendet wird, ist ebenfalls Unklug.
PS: Nach dem Ende von Execute wird noch einiges im Thread erledigt, demnach würdest du mit Destroy dem Threrad sein Objekt (sich selber) unterm Arsch weglöschen, was welches gut enden kann.
Neuste Erkenntnis:
Seit Pos einen dritten Parameter hat,
wird PoSex im Delphi viel seltener praktiziert.
  Mit Zitat antworten Zitat