c# – 退出WPF应用程序的最佳做法是什么?

前端之家收集整理的这篇文章主要介绍了c# – 退出WPF应用程序的最佳做法是什么?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我正在维护一个现有的C#应用​​程序,我注意到以下代码没有按预期工作.
private void Form1_Load(object sender,EventArgs e){
             ...
            if (proc.Length == 0)
            {                    
                proc = Process.GetProcessesByName("OpCon");
                if (proc.Length == 0)
                {
                    WriteLog("DataloggerService start: no TSS process detected; close;");
                    this.Close();
                }
            }
          ...
         }

代码应该在Close()api调用退出.但是,它仍在继续.

经过一些阅读和研究,我将其修改

private void Form1_Load(object sender,EventArgs e){
            ....
            if (proc.Length == 0)
            {                    
                proc = Process.GetProcessesByName("OpCon");
                if (proc.Length == 0)
                {
                    WriteLog("DataloggerService start: no TSS process detected; close;");
                    this.Dispose();
                    Environment.Exit(0);
                }
            }
            ....
        }

它似乎按预期退出.但是,我不相信这是否是最佳做法?

是否真的有必要在Environment.Exit()之前调用this.Close()或this.Dispose()?

谢谢.

问候,
SQR

解决方法

在您的WPF应用程序中,只要在App.xaml中指定为StartupURI的MainWindow关闭,您的应用程序就会自动退出.

如果你想在你的终端处理这个应用程序退出,你仍然可以寻求以下解决方案.

覆盖MainWindow的onClosing并手动退出/关闭应用程序.

protected override void OnClosing(System.ComponentModel.CancelEventArgs e)
{
    // Shutdown the application.
    Application.Current.Shutdown();
    // OR You can Also go for below logic
    // Environment.Exit(0);
}

猜你在找的C#相关文章