我正在处理一个错误,即在应用程序关闭之前并不总是执行代码。该代码位于 AppDomain.CurrentDomain.DomainUnload 事件的处理程序中。
我发现收到此建议的有同样问题的人的帖子
“当您的默认应用程序域发生 DomainUnload 事件时,您的代码已停止执行。您可能可以使用默认 AppDomain 上的 ProcessExit 事件执行您需要的操作。”
这对我有用,但我想知道为什么。关于这些事件中的任何一个或它们之间的差异,我都找不到太多。我还想知道我是否需要同时订阅这两者或者 ProcessExit 是否足够。
编辑:
我想添加更多信息以使其更有用。
我忽略了在它们自己的 AppDomain 中创建新线程。因为我希望这段代码不仅在父进程完成时运行,而且在每个线程完成时运行,我需要订阅 DomainUnload 事件来处理每个线程完成的时间,并且还要订阅 ProcessExit 事件来捕获父进程完成时的事件。