- android - RelativeLayout 背景可绘制重叠内容
- android - 如何链接 cpufeatures lib 以获取 native android 库?
- java - OnItemClickListener 不起作用,但 OnLongItemClickListener 在自定义 ListView 中起作用
- java - Android 文件转字符串
我正在处理一个错误,在该错误中,代码并不总是在应用程序关闭之前执行。该代码位于 AppDomain.CurrentDomain.DomainUnload 事件的处理程序中。
我找到了一个有同样问题的人的帖子,他收到了这个建议
“当您的默认应用域发生 DomainUnload 事件时,您的代码已停止执行。你可能可以做你需要做的事默认 AppDomain 上的 ProcessExit 事件。”
这对我有用,但我想知道为什么。关于这些事件或它们之间的差异,我没有找到太多信息。我还想知道我是否需要同时订阅两者,或者 ProcessExit 是否足够。
编辑:
我想添加更多信息以使其更有用。
我忽略了新线程是在它们自己的 AppDomain 中创建的。由于我希望此代码不仅在父进程完成时运行,而且在每个线程完成时运行,因此我需要订阅 DomainUnload 事件以在每个线程完成时处理以及 ProcessExit 事件以在父进程完成时捕获。
最佳答案
ProcessExit
应该足够了。
DomainUnload
事件旨在由其他 AppDomain 处理,而不是被卸载的 AppDomain
。因此,如果处理程序附加在正在卸载的域中,它可能不会运行。 ProcessExit
事件设计为在进程将要退出时运行。
关于c# - ProcessExit 与 DomainUnload,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1041435/
我正在处理一个错误,在该错误中,代码并不总是在应用程序关闭之前执行。该代码位于 AppDomain.CurrentDomain.DomainUnload 事件的处理程序中。 我找到了一个有同样问题的人
我有一个程序集,当访问它时,它会启动一个线程来处理放置在队列中的项目。在该程序集中,我将一个处理程序附加到 DomainUnload 事件: AppDomain.CurrentDomain.Domai
我是一名优秀的程序员,十分优秀!