Ja, in einem Task kann ich prüfen ob der "Current" Thread nicht eigentlich beendet werden soll
Delphi-Quellcode:
procedure proc();
begin
repeat
Beep();
TTask.CurrentTask.CheckCanceled(); // Bringt nichts
if TThread.Current.CheckTerminated() then Break; //Das hier bringt's
Sleep(500);
until False;
end;
Wie gesagt, mir geht es aber um den Fall dass im Code ein dummer Fehler ist dass er nie terminiert. Ein Deadlock, sonst was. Benutze ich die Task-Library, wird sich die Anwendung niemals beenden.