执行某些静态finallization的正确方法是什么?
没有静态析构函数.AppDomain.DomainUnload默认域中不会引发该事件.该AppDomain.ProcessExit事件共享所有事件处理程序之间的三秒(默认设置)的总时间,因此它实际上不可用.
我在ASP.NET MVC应用程序中引用第三方库,因为库的设计,它需要一个类(比如说ClassA),它必须只实例化一次,并且应该在使用后处理.因此,在我的MVC应用程序中,我定义了一个静态类并实例化了外部ClassA内部(ClassA使用频繁).但是,处理单个实例的有效方法是ClassA什么?我相信Application_End不是正确的地方.但在什么情况或方法是正确的地方?
我应该考虑方案iisreset,应用程序池回收以及服务器停止或重新启动的任何其他情况,并确保资源得到妥善处理.
我有一个程序集,当访问时会旋转一个线程来处理放在队列中的项目.在该程序集中,我将一个处理程序附加到DomainUnload事件:
AppDomain.CurrentDomain.DomainUnload += new EventHandler(CurrentDomain_DomainUnload);
该处理程序将线程连接到主线程,以便队列中的所有项都可以在应用程序终止之前完成处理.
我遇到的问题是,当控制台应用程序终止时,DomainUnload事件不会被触发.任何想法为什么会这样?
使用.NET 3.5和C#