Я использую несколько UserControls, которые создаются и уничтожаются в моем приложении во время выполнения (путем создания и закрытия подокнов с этими элементами управления внутри).
Это WPF UserControl и наследуется от System.Windows.Controls.UserControl. Нет метода Dispose(), который я мог бы переопределить. PPMM - это Singleton с тем же временем жизни, что и мое приложение.
Теперь в конструкторе моего (WPF) UserControl я добавляю обработчик событий:
public MyControl()
{
InitializeComponent();
// hook up to an event
PPMM.FactorChanged += new ppmmEventHandler(PPMM_FactorChanged);
}
Я привык к удалению такого обработчика событий в деструкторе:
~MyControl()
{
// hook off of the event
PPMM.FactorChanged -= new ppmmEventHandler(PPMM_FactorChanged);
}
Сегодня я наткнулся на это и подумал:
1) Это необходимо? Или GC заботится об этом?
2) Это работает? Или мне нужно сохранить вновь созданный ppmmEventHandler?
Я с нетерпением жду ваших ответов.