我看到这段代码是别人写的:
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
}
如您所见,处理程序已注册,但从未注销。那不会造成内存泄漏吗?
最佳答案
事件处理可能会导致泄漏,但仅在某些情况下会发生泄漏。
需要注意的是,订阅对象的寿命比发布对象的寿命长。
需要注意的是,发布对象的寿命比订阅对象的寿命长。
在这种情况下,它们似乎是同一对象,因此取消订阅是不必要或有用的。那只会使您的代码混乱。