ProcessExit vs DomainUnload

jan*_*jan 10 .net c# appdomain

我正在处理一个错误,在应用程序关闭之前,代码并不总是被执行.代码位于AppDomain.CurrentDomain.DomainUnload事件的处理程序中.

我找到了一个有同样问题的人发来的帖子

"当您的默认应用程序域发生DomainUnload事件时,您的代码已停止执行.您可以使用默认AppDomain上的ProcessExit事件执行所需操作."

这对我有用,但我想知道为什么.我无法在这些事件或它们之间的差异上找到太多.我也想知道我是否需要订阅这两个,或者ProcessExit是否足够.

编辑:

我想添加更多信息以使其更有用.

我遗漏了在他们自己的AppDomain中创建新线程.因为我希望这个代码不仅在父进程完成时运行,而且在每个线程完成时运行,我需要订阅DomainUnload事件来处理每个线程何时完成,以及ProcessExit事件在父进程完成时捕获.

Meh*_*ari 13

ProcessExit 应该足够了.

DomainUnload事件旨在由其他AppDomain处理,而不是AppDomain被卸载.因此,如果处理程序附加在正在卸载的域中,则可能无法运行.该ProcessExit活动旨在当进程运行退出.