Ich verwende einige UserControls
die in meiner Anwendung während der Laufzeit erstellt und zerstört werden (durch Erstellen und Schließen von Unterfenstern mit diesen Steuerelementen darin).
Es ist ein WPF UserControl und erbt von System.Windows.Controls.UserControl
. Es gibt keine Dispose()
Methode, die ich außer Kraft setzen könnte.
PPMM
ist eine Singleton
mit der gleichen Lebensdauer wie meine Anwendung.
Jetzt im Konstruktor meiner (WPF) UserControl
füge ich einen Event-Handler hinzu:
public MyControl()
{
InitializeComponent();
// hook up to an event
PPMM.FactorChanged += new ppmmEventHandler(PPMM_FactorChanged);
}
Ich habe mir angewöhnt, solche Ereignishandler im Destruktor zu entfernen:
~MyControl()
{
// hook off of the event
PPMM.FactorChanged -= new ppmmEventHandler(PPMM_FactorChanged);
}
Heute bin ich über diesen Artikel gestolpert und habe mich gewundert:
1) Ist dies notwendig? Oder kümmert sich der GC darum?
2) Funktioniert das überhaupt? Oder müsste ich die neu erstellte ppmmEventHandler
?
Ich bin gespannt auf Ihre Antworten.