我有一个 Web 用户控件,其中包含其他几个(Web 用户)控件并订阅孩子们提出的事件。
我看到有人在类似情况下在包含控件上提供 Dispose() 并取消注册它已订阅的事件。
当请求处理完成时,这一切不会被吹走吗?/ 是否有必要注销这些事件?
我有一个 Web 用户控件,其中包含其他几个(Web 用户)控件并订阅孩子们提出的事件。
我看到有人在类似情况下在包含控件上提供 Dispose() 并取消注册它已订阅的事件。
当请求处理完成时,这一切不会被吹走吗?/ 是否有必要注销这些事件?
由于当包含控件本身不再被引用时,包含的控件(事件发布者)将不再被任何东西引用,它们应该被垃圾回收。当这种情况发生时,包含控件也可以被垃圾收集。由于这些对象都在同一代中,我看不出如何更快地收集容器。似乎没有必要取消注册事件处理程序。如果事件发布者是比容器寿命更长的对象,那么这将是有道理的。
有关更多信息,请参考此讨论。
我认为这不是必要的步骤。
正如您所说,每次回发时都会重新创建页面(及其所有控件),因此没有必要