Я использую несколько 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
?
Я с нетерпением жду ваших ответов.