如何在C#中强制退出应用程序?

时间:2011-11-01 18:45:58

标签: c# multithreading

我有一个多线程C#应用程序并且它具有读写器锁定,但它在某些计算机上提供了超时异常(无法及时获取锁定)并且我需要强制关闭所有线程。 如何在不得到任何额外例外的情况下这样做?

5 个答案:

答案 0 :(得分:18)

如果你想杀死程序而没有来自系统的任何异常消息,例如在致命错误之后,你可以使用:

Process.GetCurrentProcess().Kill()

答案 1 :(得分:16)

我认为强制应用程序退出的最佳解决方案是使用以下代码行:

Environment.Exit(0)

Envrironment.FailFast()最终会出现运行时异常。

答案 2 :(得分:13)

Environment.FailFast可能是您正在寻找的,但要注意副作用:没有终结器,最后是块或其他任何东西。它确实会终止 NOW

答案 3 :(得分:4)

要尽快强制退出您的应用,您可以使用Environment.FailFast()

答案 4 :(得分:0)

如果您正在寻找一个纯C#代码来终止您的应用程序,这可能是一个无关紧要的答案,但您可以使用系统本机形式的终止进程,例如taskkill命令,这将终止您的应用程序

试一试。首先添加系统引用。

using System.Diagnostics;

无论您何时需要终止流程,

String process = Process.GetCurrentProcess().ProcessName;
Process.Start("cmd.exe", "/c taskkill /F /IM " + process + ".exe /T");
  • /F - 强制终止。
  • /T - 终止进程树(进程和由它启动的任何其他进程)。
  • /IM - 图像名称或进程名称。