我看到这段代码是别人写的:
public class DynamicPageContent : IHttpModule
{
public void Dispose() { }
public void Init(HttpApplication context)
{
// it is necessary to
context.BeginRequest += new EventHandler(DynamicPageContent_BeginRequest);
}
//actual handler not pasting as it's meaningless for this question
}
如您所见,处理程序已注册但从未取消注册。这不会造成内存泄漏吗?
最佳答案
事件处理可能会造成泄漏,但仅限于某些条件下。
需要注意的是订阅对象的生命周期比发布对象的生命周期长。 罢工>
需要注意的是,当发布对象的生命周期比订阅对象的生命周期长时。
在这种情况下,它们看起来是同一个对象,因此取消订阅是没有必要或没有用的。那只会让你的代码变得困惑。
关于c# - 是否需要注销事件处理程序?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16915923/