Environment.Exit 需要很长时间才能关闭应用程序

Environment.Exit takes long time to close the application

我正在尝试解决我不清楚的问题。 调用 Environment.Exit(0) 时,大约需要 22 秒才能关闭应用程序。

if (AppDomain.CurrentDomain.IsDefaultAppDomain())
{
    Environment.Exit(exitCode);
}

你知道幕后发生了什么吗? 我虽然可能抛出异常,但我检查了异常对话框中的所有复选框。

如果您了解 .NET 应用程序的工作原理以及 Environment.Exit 的工作原理,那么幕后发生的事情就很清楚了。

简而言之,Environment.Exit 不是退出任意应用程序的最快方法。它仍然等待任何挂起的终结器 运行(如果它们 运行 足够快,它们总共只有 30 秒的 IIRC)。如果您正在使用例如套接字,终结器很可能需要几秒钟才能 运行.

最简单的检查方法当然是使用调试器 - 只需在关闭时暂停,您就会看到哪些线程正在实际执行,以及它们正在执行什么。