Winforms:Application.Exit与Enviroment.Exit与Form.Close
以下是我们可以退出申请的方式:
Enviroment.Exit(0)
-
Application.Exit()
-
Form.Close()
这三种方法有什么区别,什么时候使用每种方法?
正确的方法是Application.Exit()
。 根据文档 ,它终止所有的消息循环,并closures所有窗口,从而使您的窗体执行清理代码(在Form.OnClose等)的可能性。
Environment.Exit
只会杀死进程。 如果某些表单有未保存的更改,则不会有任何机会询问用户是否要保存它们。 此外资源(数据库连接等)不能正确释放,文件可能不会被刷新等。
Form.Close
只是做它所说的:它closures一个表单。 如果您打开了其他表单(可能不是现在,但在未来版本的应用程序中),则应用程序不会终止。
请记住,如果您使用multithreading, Application.Exit()
不会终止您的线程(并因此应用程序将继续在后台工作,即使GUI被终止)。 因此,你必须采取措施,杀死你的线程,无论是在主函数(即Program.Main()
)或在主窗体的OnClose
事件。
他们都很好。 但form.Close()
不会closures你的应用程序,它会closures表单,然后main方法返回一个int(exitcode)。
如果您希望您的应用程序退出并使用退出代码,请使用Environmet.Exit(exitcode)
或返回主方法中的退出代码