我的基于 GUI 桌面的 WPF 4.0 (C# .Net 4.0) 程序与 SQL Server 数据库一起工作。每次我运行我的应用程序时,它都会通过 ADO.NET Entity Framework 创建与 SQL Server 的连接,如果无法访问 SQL Server,它会抛出异常并显示 MessageBox
和通知。
现在我希望在用户阅读此消息后应用程序将关闭。我找到了三种方法来做到这一点:
Process.GetCurrentProcess().Kill();
或
this.Shutdown(); // Application.Current.Shutdown()
或
System.Environment.Exit(0);
所有这些都工作正常并且可以满足我的需要——关闭应用程序并在 Windows 任务管理器中终止应用程序的进程。
我想知道:
- 它们有什么区别?
- 哪种方式可以更快地关闭我的应用程序?
- 我应该使用哪种方式关闭应用程序?
Application.Current.Shutdown()
和this.Shutdown()
关闭应用的方式一样吗?
或者也许有另一种更合适的方法来关闭 WPF GUI 应用程序?
Application.Exit()
对我不起作用,因为我收到错误:
The event '
System.Windows.Application.Exit
' can only appear on the left-hand side of += or -=
谢谢。
最佳答案
Application.Current.Shutdown()
是关闭应用程序的正确方法。通常,因为它会触发退出事件,您可以处理,further info .
Process.GetCurrentProcess().Kill()
应该在您想要尽快终止应用程序时使用,further info .
这些方法的性质完全不同:
Shutdown()
可以暂停以结束一些操作Kill()
强制应用程序尽快关闭
Kill()
可能是最快的方法,但这有点像内核 panic 。
关于c# - 关闭 WPF GUI 应用程序的正确方法 : GetCurrentProcess(). Kill()、Environment.Exit(0) 或 this.Shutdown(),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3880836/