当用户从文件菜单中单击退出菜单项时,应该如何退出应用程序?
我试过:
this.Dispose();
this.Exit();
Application.ShutDown();
Application.Exit();
Application.Dispose();
还有很多其他的。没有什么工作。
当用户从文件菜单中单击退出菜单项时,应该如何退出应用程序?
我试过:
this.Dispose();
this.Exit();
Application.ShutDown();
Application.Exit();
Application.Dispose();
还有很多其他的。没有什么工作。
当前回答
如果你想从另一个没有创建应用程序对象的线程中退出,请使用:
其他回答
Application.Current.ShutdownMode = ShutdownMode.OnExplicitShutdown;
if (System.Windows.Forms.Application.MessageLoop)
{
// WinForms app
System.Windows.Forms.Application.Exit();
system.Environment.Exit(1);
}
根据需要使用以下任何一种方法:
1.
App.Current.Shutdown();
OR
Application.Current.Shutdown();
2.
App.Current.MainWindow.Close();
OR
Application.Current.MainWindow.Close();
以上所有的方法都会调用Window类的关闭事件,并且执行可能会在某个时候停止(因为通常应用程序会设置像'are you sure?或“关闭前要保存数据吗?”,在窗口完全关闭之前)
3.但如果您想立即终止应用程序而不发出任何警告。使用下面的
Environment.Exit(0);
在xaml代码中,你可以调用一个预定义的SystemCommand:
Command="SystemCommands.MinimizeWindowCommand"
我认为这应该是首选的方式……
总结一下,有几种方法可以做到这一点。
1)终止进程,跳过结束、错误处理等:
Process.GetCurrentProcess().Kill();
2)关闭当前应用程序,这可能是正确的方式,因为它调用退出事件:
Application.Current.Shutdown();
or
this.Shutdown();
(当在app类的实例中调用时)
3)关闭当前app(所有表单必须提前关闭/完成):
this.Close();
(当在app类的实例中调用时)
4)退出环境,终止应用程序:
Environment.Exit(0);
此外,你可能想在这里阅读退出状态