Thema: Delphi Freigabe Thread

Einzelnen Beitrag anzeigen

Benutzerbild von himitsu
himitsu
Online

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

AW: Freigabe Thread

  Alt 12. Feb 2021, 13:34
Zitat:
Nein, eine Exception kommt nicht.
Nur im Programm oder auch im Debugger?

Wie gesagt, im Programm selber werden unbehandelte Exceptions im Thread von Delphi abgefangen (und dann böswillig nicht ausgegeben).
Zitat von Kurzfassung:
Delphi-Quellcode:
function ThreadProc(const Thread: TThread): Integer;
begin
  try
    try
      Thread.Execute;
    except
      Thread.FatalException := AcquireExceptionObject;
    end;
  finally
    Thread.DoTerminate; // die einzige Stelle, wo man an FatalException ran kommt
    if Thread.FreeOnTerminate then
      Thread.Destroy;
  end;
end;
[EDIT]
Wann haben die das umgebaut? bin mir fast sicher FatalException wurde früher vor Destroy freigegeben.
Somit ist es jetzt aber auch im Destroy noch verfügbar.
[/EDIT]

Denn Exceptions in irgendeinem Thread (auch dem MainThread), welche bis zum System durchrauschen, da beendet dann Windows gleich den kompletten Prozess, drum fängt TThread sowas ab.
Neuste Erkenntnis:
Seit Pos einen dritten Parameter hat,
wird PoSex im Delphi viel seltener praktiziert.

Geändert von himitsu (12. Feb 2021 um 13:44 Uhr)
  Mit Zitat antworten Zitat