Evento interessante “Dispose” behavior

Eu notei um comportamento interessante em nosso aplicativo .NET WinForms. Nós temos um formulário mdi que tem muitos filhos mdi adicionados. Essas formas infantis ouvem um evento "broadcast", que é essencialmente uma chamada para se atualizar. O evento é declarado em uma classe base e os eventos de escuta são adicionados nos formulários filhos.

Percebi que, mesmo quando esses formulários filhos são fechados, os eventos ainda estão sendo atingidos, se o evento não for explicitamente removido no método Dispose ().

Qual é o raciocínio por trás disso? Certamente, se o formulário estiver fechado, os eventos devem ser separados / descartados? É porque o próprio evento em si é declarado em uma classe externa? Isso é o que estou presumindo.

O insight seria muito apreciado.

(usando C #, .NET 3.5)

questionAnswers(4)

yourAnswerToTheQuestion