关闭应用程序

bob*_*988 65 c#

关闭C#应用程序时的最佳做法是什么?

我已经读过你可以使用:

Environment.Exit(0); or Application.Exit();
Run Code Online (Sandbox Code Playgroud)

但有什么区别?

此外,关于Environment.Exit(0),我在使用Java之前使用了退出代码,但从未完全理解它们的用途.在C#中退出应用程序时,它们扮演什么角色?

Nag*_*h M 68

System.Windows.Forms.Application.Exit() - 通知所有消息泵必须终止,然后在处理完消息后关闭所有应用程序窗口.此方法停止所有线程上的所有正在运行的消息循环,并关闭应用程序的所有窗口.此方法不会强制应用程序退出.Exit方法通常在消息循环中调用,并强制Run返回.要仅退出当前线程的消息循环,请调用ExitThread.如果您正在运行WinForms应用程序,则这是要使用的调用.作为一般准则,如果您调用了System.Windows.Forms.Application.Run,​​请使用此调用.

System.Environment.Exit(exitCode) - 终止此进程并为底层操作系统提供指定的退出代码.此调用要求您具有SecurityPermissionFlag.UnmanagedCode权限.如果不这样做,则会发生SecurityException错误.如果您正在运行控制台应用程序,则这是要使用的调用.

我希望最好用 System.Windows.Forms.Application.Exit()

检查此链接Application.Exit()vs Application.ExitThread()vs Environment.Exit()http://geekswithblogs.net/mtreadwell/archive/2004/06/06/6123.aspx

  • 可能值得明确指出,在你调用`Application.Run`之前,你唯一的选择是`Environment.Exit`为`Application.Exit`将没有任何效果. (5认同)

Jus*_*tin 17

Application.Exit适用于Windows窗体应用程序 - 它通知所有消息泵它们应该终止,等待它们完成处理事件然后终止应用程序.请注意,它不一定会强制应用程序退出.

Environment.Exit适用于所有Windows应用程序,但它主要用于控制台应用程序.它会立即使用给定的退出代码终止进程.

通常,您应该Application.Exit在Windows窗体应用程序和Environment.Exit控制台应用程序中使用(尽管我更喜欢让Main方法/入口点运行完成而不是Environment.Exit在控制台应用程序中调用).

有关更多详细信息,请参阅MSDN文档.