Interessantes Ereignis Entsorgungsverhalten

Ich habe in unserer .NET WinForms-App ein interessantes Verhalten festgestellt. Wir haben ein MDI-Formular, dem viele MDI-Kinder hinzugefügt wurden. Diese untergeordneten Formulare hören sich ein "Broadcast" -Ereignis an, bei dem es sich im Wesentlichen um einen Aufruf handelt, sich selbst zu aktualisieren. Das Ereignis wird in einer Basisklasse deklariert und die Listening-Ereignisse in den untergeordneten Formularen hinzugefügt.

Ich habe festgestellt, dass selbst wenn diese untergeordneten Formulare geschlossen sind, die Ereignisse weiterhin betroffen sind, wenn das Ereignis in der Dispose () -Methode nicht explizit entfernt wird.

Was ist die Begründung dafür? Sicher, wenn das Formular geschlossen ist, sollten die Ereignisse getrennt / entsorgt werden? Liegt es daran, dass das eigentliche Ereignis in einer externen Klasse deklariert wird? Das nehme ich an.

Einblick wäre sehr dankbar.

(unter Verwendung von C #, .NET 3.5)

Antworten auf die Frage(4)

Ihre Antwort auf die Frage