Thema: Delphi Freigabe Thread

Einzelnen Beitrag anzeigen

Benutzerbild von himitsu
himitsu

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

AW: Freigabe Thread

  Alt 12. Feb 2021, 12: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.
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
my Delphi wish list : BugReports/FeatureRequests

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