Hallo -
Ich frage mich gerade, wie man es am besten anstellt, ein Singleton beim Beenden der Anwendung am besten wieder abzuräumen
Zwei Möglichkeiten fallen mir ein:
- Nach Application.Run()
- Mittels Klassendestruktor
Zur Erläuterung:
1)
Delphi-Quellcode:
begin
Application.Initialize;
Application.MainFormOnTaskbar := True;
Application.CreateForm(TForm1, Form1);
Application.Run;
TLogger.getInstance.Free();
end.
2)
Delphi-Quellcode:
class destructor TSingleton.Destroy();
begin
if Assigned(instance) then instance.Free();
end;
Funktionieren tut beides bestens, jedenfalls bekomme ich bei
ReportMemoryLeaksOnShutdown := True;
keine Fehlermeldungen
Der Klassendestruktor wird übrigens
später als die erste Methode aufgerufen.