Winforms: Application.Exit vs Environment.Exit vs Form.Close



以下是我们可以退出应用程序的方式:

  1. Environment.Exit(0)
  2. Application.Exit()
  3. Form.Close()

这三种方法与何时使用每种方法有什么区别?

正确的方法是 Application.Exit()。根据文档,它终止了所有消息循环并关闭所有窗口,从而使您的表格有可能执行其清理代码(以形式。

Environment.Exit只会杀死该过程。如果某些形式具有例如未保存的更改是没有机会询问用户是否要保存它们。此外,资源(数据库连接等)无法正确发布,可能不会刷新文件等。

Form.Close只是按照说的话:它关闭了表格。如果您打开了其他表格(也许不是现在,而是在您的应用程序的某些未来版本中),则该应用程序不会终止。

请记住,如果您使用多线程,则Application.Exit()不会终止您的线程(因此,即使GUI被终止,应用程序也将继续在后台工作)。因此,您必须采取措施杀死主函数(即 Program.Main())或在主要形式的OnClose事件中。

它们都很好。但是form.Close()不会关闭您的应用程序它关闭了形式,之后主方法返回int(出口码)。

如果您希望您的申请使用出口代码退出 Environmet.Exit(exitcode)或返回主机中的出口

最新更新