.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.