Application.Exit,Environment.Exit,Application.Current.ShutDown

Application.Exit

通知winform消息循环退出,会在所有前台线程退出后,才真正的退出应用。(先停止线程,然后终止进程)。
如果前台线程还在运行,往往会造成Application.Exit失效。
解决方法之一:

//先关闭窗口
this.Close();
//再退出程序
Application.Exit();

Environment.Exit

立即终止当前进程,应用程序即强制退出,返回exitcode给操作系统。(直接终止进程)。
重新启动应用程序

private static void ReStart()
{
	Environment.Exit(0);
	System.Diagnostics.Process.Start(Application.ExecutablePath);
}

用Environment.Exit就无法完成这个功能。

Application.Current.ShutDown

只关掉了UI而后台进程没有关掉。
关闭当前程序,如果有其他线程没有结束,不会关闭。

posted @ 2020-03-06 15:44  wesson2019  阅读(555)  评论(0编辑  收藏  举报