- 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/
有一个 EXE,它隐式加载一些 DLL 和其他显式加载 (LoadLibrary)。此 EXE 正在执行其 ExitProcess(剩余进程中的 1 个线程)并作为忙于卸载 DLL 的一部分,例如 A
我正在处理一个错误,在该错误中,代码并不总是在应用程序关闭之前执行。该代码位于 AppDomain.CurrentDomain.DomainUnload 事件的处理程序中。 我找到了一个有同样问题的人
using System; using System.IO; using System.Runtime.Serialization.Formatters.Binary; namespace empty
我想在进程关闭时在库中进行一些清理,DotNet Core 的替代方案是什么?在 .Net Framework 4 中,我使用了 AppDomain.CurrentDomain.ProcessExit
正如标题所示,ProcessProtocol 类上的这两个函数有什么区别?关于什么时候应该使用一种而不是另一种的文档有点稀疏? 我最好寻找一些可以证明这一点的用例示例。 最佳答案 我猜文档在这一点上有
考虑类,利用 Apache Ignite.NET 库 public interface ICluster { void Join(); void Leave(); } public c
我是一名优秀的程序员,十分优秀!