Я заметил интересное поведение в нашем приложении .NET WinForms. У нас есть форма MDI, в которую добавлено много детей MDI. Эти дочерние формы слушают «широковещательное» событие, которое по сути является призывом обновить себя. Событие объявляется в базовом классе, а события прослушивания добавляются в дочерние формы.
Я заметил, что даже когда эти дочерние формы закрыты, события все еще обрабатываются, если событие явно не удалено в методе Dispose ().
В чем причина этого? Конечно, если форма закрыта, события должны быть отделены / утилизированы? Это потому, что само фактическое событие объявлено во внешнем классе? Это то, что я предполагаю.
Понимание было бы очень полезно.
(с использованием C #, .NET 3.5)