2

我看到这段代码是别人写的:

 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
}

如您所见,处理程序已注册但从未取消注册。那不会造成内存泄漏吗?

4

1 回答 1

2

事件处理可能会造成泄漏,但仅限于某些条件下。

需要注意的是订阅对象的寿命比发布对象的寿命长。

需要注意的是发布对象的生命周期比订阅对象的生命周期长。

在这种情况下,它们似乎是同一个对象,因此取消订阅是没有必要或有用的。那只会使您的代码混乱。

于 2013-06-04T11:12:33.773 回答