[英]Unload event for the default Application Domain?
是否有卸载事件,或任何事件,通知,消息,机制或挂钩,我可以用来在“默认”应用程序域卸载之前得到通知?
我有代码需要知道什么时候应用程序域(几乎总是默认域)结束。
注意:我不知道开发人员在使用我的代码时会创建什么样的应用程序。 它可能是:
无论哪种方式,我需要知道域何时关闭,所以我可以做一些“东西” 。 而且我不会要求用户调用任何类型的“关闭”或“清理”方法。 (另外,建议用户需要自己调用方法不回答问题:当我正在运行的应用程序域关闭时,这是关于通知的)。
我忘了从我对这个问题的其他微小变化中反复发表我自己的答案。 最终,答案来自MA Hanin的回答 。
没有DomainUnload
,但有一个ProcessExit
:
class Contoso
{
//constructor
public Contoso()
{
//...
//Catch domain shutdown (Hack: frantically look for things we can catch)
if (AppDomain.CurrentDomain.IsDefaultAppDomain())
AppDomain.CurrentDomain.ProcessExit += MyTerminationHandler;
else
AppDomain.CurrentDomain.DomainUnload += MyTerminationHandler;
}
private void MyTerminationHandler(object sender, EventArgs e)
{
//The domain is dying. Serialize out our values
this.Dispose();
}
...
}
注意 :任何代码都将发布到公共域中。 无需归属。
AppDomain.CurrentDomain.DomainUnload +=
(object sender, EventArgs e) => { /*do stuff*/ };
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.