Einzelnen Beitrag anzeigen

Der schöne Günther

Registriert seit: 6. Mär 2013
6.155 Beiträge
 
Delphi 10 Seattle Enterprise
 
#1

Wie entferne ich ein Singleton am besten beim Beenden der Anwendung wieder?

  Alt 25. Mär 2013, 13:42
Delphi-Version: XE2
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:
  1. Nach Application.Run()
  2. 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.
  Mit Zitat antworten Zitat