我在运行时使用一些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
?
期待您的答案。