强制关闭应用程序 (.net)

7

我希望强制关闭并返回一个退出代码。在MSDN上查看后,发现WPF中的Application有一个Shutdown方法,可以接受一个错误代码作为参数,但System.Windows.Forms.Application似乎没有这样的方法。

我可以看到Application.Exit(),但无法传递错误代码。

请问是否有人知道是否可能实现?

谢谢。

3个回答

13
你可以使用 System.Environment.Exit(yourExitCode)。

除了错误代码,有什么理由使用 Environment.Exit 而不是 Application.Exit 吗? - Sekhat
1
在Winforms应用程序中需要使用Application.Exit,而在非GUI程序中可以使用Environment.Exit()。 - Matt Warren

2
在您的表单类中添加一个ExitCode属性(或类似属性):
```

在您的表单类中添加一个ExitCode属性(或类似属性):

```
class MyForm : Form {
  public int ExitCode { get; set; }

  void ShutDownWithError(int code) {
    ExitCode = code;
    Close();
  }
}

在你的代码中,你有:

static void Main() {
  // ...
  MyForm form = new MyForm();
  Application.Run(myForm);
}

将其改为:
static void Main() {
  // ...
  MyForm myForm = new MyForm();
  Application.Run(myForm);
  Environment.Exit(myForm.ExitCode);
}

当在您的表单上调用ShutdownWithError方法时,您将关闭主表单。这将跳出使用Application.Run开始的循环。然后,您只需获取退出代码并使用Environment.Exit终止进程。

谢谢,我认为我们的情况可能有点复杂,因为我们需要在全局异常处理程序中关闭。但原则是相同的,我想。 - Duncan

2

在退出时,在System.Environment类中设置ExitCode属性,例如:

System.Environment.ExitCode = 1
Application.Exit()

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接