我看到其他人写的这段代码:
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
}
如您所见,处理程序已注册但从未注销。这不会造成内存泄漏吗?
答案 0 :(得分:2)
事件处理可能会造成泄漏,但仅限于某些条件。
需要注意的是订阅对象的生命周期比发布对象更长。 击>
需要注意的是发布对象的生命周期比订阅对象更长。
在这种情况下,它们似乎是同一个对象,然后取消订阅没有必要或没用。这只会使你的代码混乱。