我是否需要手动删除所有事件以使我的对象从内存中删除?

时间:2010-01-13 16:17:11

标签: .net asp.net events c#-2.0

我在MSDN中读过要求取消订阅对象必须能够从内存中处理的每个事件。我总是使用 - =删除对象内部事件的所有引用(如MSDN show)。

现在,我必须维护代码并且它有一些内存泄漏。我看到前一个开发人员只是将所有事件订阅的对象设置为NULL而不是 - =每个事件方法。

示例:

_watcher.Changed += new ...
_watcher.Created += new ...
_watcher.Deleted += ..

//later.

_watcher = NULL;

这是一个好方法还是将变量保存在内存中?

1 个答案:

答案 0 :(得分:6)

如果没有对_watcher的其他引用,则无需删除事件处理程序以避免内存泄漏。

作为习惯问题,我倾向于明确删除事件处理程序。