代码之家  ›  专栏  ›  技术社区  ›  Sylvain

如何立即退出Windows窗体.NET应用程序?

  •  3
  • Sylvain  · 技术社区  · 14 年前

    在我们的应用程序中,我们有一个非常广泛的异常处理机制。在我们的错误处理逻辑中的某一点上,我们希望终止应用程序——就在此时,不需要进一步执行代码。

    我们当前的代码使用environment.exit()来实现这一点。调用environment.exit()后,仍会执行一些代码。例如,GC可以执行一些对象的终结器(这在我们的例子中会导致问题)。我们不希望发生这种事。有没有办法真正扼杀我们自己的过程(a Win32 可能是API调用)?

    当然,我们不希望最终用户看到程序崩溃时出现的Windows对话框…

    3 回复  |  直到 11 年前
        1
  •  1
  •   Powerlord    14 年前

    这似乎在一个简单的应用程序中有效,但我没有尝试过任何复杂的应用程序:

    System.Diagnostics.Process.GetCurrentProcess().Kill();
    

    GetCurrentProcess :

    获取新的 Process 组件和 将其与当前 主动过程。

    Kill :

    杀死 强制终止 过程,而 CloseMainWindow 只有 请求终止。

        2
  •  5
  •   Andrew Hare    14 年前

    使用 Environment.FailFast 方法:

    终止进程,但不执行任何活动的Try Finally块或终结器。

        3
  •  3
  •   Nick    14 年前