gpt4 book ai didi

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

转载 作者:IT王子 更新时间:2023-10-29 03:50:36 26 4
gpt4 key购买 nike

我的基于 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 任务管理器中终止应用程序的进程。

我想知道:

  1. 它们有什么区别?
  2. 哪种方式可以更快地关闭我的应用程序?
  3. 我应该使用哪种方式关闭应用程序?
  4. 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/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com