什么是AppDomain.CurrentDomain.ProcessExit事件的DotNet Core替代品?

时间:2016-07-03 15:23:48

标签: .net .net-core

我希望在关闭进程时在库中进行一些清理,DotNet Core的替代方案是什么?在.Net Framework 4中,我使用了AppDomain.CurrentDomain.ProcessExit。

2 个答案:

答案 0 :(得分:3)

由于您的代码位于库中,因此您可以使库的调用者提供通知。这样主持人就可以决定通知你。

通常情况下,库不应该混淆进程全局状态。它不应该假设它所托管的环境。

也许调用者可以传递在进程关闭开始时完成的Task。或者,调用者可以在您的库中调用静态方法(NotifyProcessShutdownPerformProcessShutdownCleanup)。

答案 1 :(得分:0)

.NET-Core中没有AppDomain.CurrentDomain.ProcessExit的替代品,使用了相同的事件。

但是,如果要在库中进行清理,我建议使用以下两种方法之一:

  • 在主应用程序将调用的库接口中添加void Shutdown()(或类似内容)。
  • 在您的图书馆中使用IDisposable,以便图书馆在处置后可以自行清理。

然后,主应用程序将使用AppDomain.CurrentDomain.ProcessExit并触发上述机制之一。