如果我的应用程序只注册了几个事件处理程序(并且在应用程序关闭之前不会处理使用事件的对象),我是否真的需要担心取消注册这些处理程序?我能看到的唯一一个好理由是,如果事件被解雇你可能会有一些额外的开销,你不必关心(即你有多个处理程序注册到一个事件).还有其他好的理由吗?任何人都遇到重大问题,因为他们没有取消注册事件?
我在C#工作,我的工作场所有一些代码标准.其中之一是我们连接的每个事件处理程序(例如KeyDown)必须在Dispose方法中断开连接.这有什么好的理由吗?
我有以下代码:
public void LoadPage()
{
LayoutPanel.Controls.Clear();
ContentObjects = LoadContentObjects();
foreach (string img in ContentObjects)
{
thumbnail = new ctrlThumbnailControl(img);
LayoutPanel.Controls.Add(thumbnail);
thumbnail.ThumbnailSelected += Thumbnail_ThumbnailSelected;
}
}
private void Thumbnail_ThumbnailSelected(string PathToMedia)
{
lblFileName.Text = PathToMedia;
}
Run Code Online (Sandbox Code Playgroud)
我为每个加载的图像创建一个缩略图控件(限制为每页150个).缩略图控制器具有在悬停在控件上时引发的事件.
所以这个页面有150个带事件的控件.当我加载下一页时,我不删除事件.我删除了控件.并创建另外150个控件添加事件给他们.
所以问题是:
如果不是,我将如何以编程方式清除事件处理程序,而无需单独检查每个控件并删除它的处理程序?