相关疑难解决方法(0)

关闭WPF GUI应用程序的正确方法:GetCurrentProcess().Kill(),Environment.Exit(0)或this.Shutdown()

我的基于GUI桌面的WPF 4.0(C#.Net 4.0)程序适用于SQL Server数据库.每次运行我的应用程序时,它都会通过ADO.NET Entity Framework创建与SQL Server的连接,如果SQL Server无法访问,则会抛出异常并显示MessageBox通知.

现在我希望在用户阅读此消息后,应用程序将关闭.我找到了三种方法:

Process.GetCurrentProcess().Kill();
Run Code Online (Sandbox Code Playgroud)

要么

this.Shutdown(); // Application.Current.Shutdown()
Run Code Online (Sandbox Code Playgroud)

要么

System.Environment.Exit(0);
Run Code Online (Sandbox Code Playgroud)

所有这些都可以正常工作并完成我需要的工作 - 在Windows任务管理器中关闭应用程序并终止应用程序的进程.

我想知道:

  1. 他们之间有什么区别?
  2. 哪种方式可以更快地关闭我的申请?
  3. 我应该使用哪种方式关闭应用程序?
  4. Application.Current.Shutdown()this.Shutdown()以同样的方式来关闭应用?

或者可能还有另一种更合适的方法来关闭WPF GUI应用程序?

Application.Exit() 因为我收到错误,对我不起作用:

事件' System.Windows.Application.Exit'只能出现在+ =或 - =的左侧

谢谢.

c# database wpf exception-handling close-application

49
推荐指数
1
解决办法
6万
查看次数

.net终结器总是被执行吗?

终结器是否保证在某些时候在.NET中执行(备用断电等)?我知道GC是如何工作的,并且当它们完全运行时它是不确定的.

(搜索没有显示出良好的答案,所以我加入了这个问题,期望与不那么容易发现的实际答案合并.除此之外,我已经知道了答案,我将要添加几天之后如果没有人提到它.)

.net garbage-collection finalizer

18
推荐指数
2
解决办法
1783
查看次数