当前位置:  开发笔记 > 编程语言 > 正文

是否可以安全地相信Page_Unload将始终运行并且是Dispose()代码的好地方?

如何解决《是否可以安全地相信Page_Unload将始终运行并且是Dispose()代码的好地方?》经验,为你挑选了2个好方法。

我熟悉try {} finally {}模式,using(){}模式作为确保调用Dispose()的方法,但对于ASP.NET页面,Dispose创建的对象同样安全. Page_Unload事件的页面范围?改为覆盖Page的Dispose()方法是否有意义?

我不确定是什么代码引发了Page_Unload事件或Page Dispose()方法,因此我不知道它将运行的保证是什么.



1> pbz..:

在处理之前,在控制生命周期中引发卸载事件.由于页面本身是一个控件,因此也会引发unload事件.您添加到页面的每个控件都将成为页面生命周期的一部分.因此,如果您有一个需要进行清理的控件,那么控件本身应该处理任何可能的清理.如果已将控件添加到页面并正确遵循封装原则,则不必担心这一点.

该文件说,你应该甚至用这种"为特定的控制,如关闭特定的控制,数据库连接做最后的清理." 我的建议是避免卸载事件.如果可能的话,尽早做任何清理代码,如果可以,请使用"使用".在某种程度上,它就像使用"全局"变量而不是局部变量之间的选择,后者更可取.



2> Keltex..:

我觉得这很安全.Page_Unload应该是在页面生命周期中执行清理的地方.请参阅http://msdn.microsoft.com/en-us/library/ms178472.aspx,其中说:

每个控件都会发生此事件,然后是页面.在控件中,使用此事件对特定控件执行最终清理,例如关闭特定于控件的数据库连接.

对于页面本身,使用此事件执行最终清理工作,例如关闭打开的文件和数据库连接,或完成日志记录或其他特定于请求的任务.

推荐阅读
mobiledu2402851377
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有