簡體   English   中英

退出 WPF 應用程序的最佳做法是什么?

[英]what is the best practice to exit an WPF application?

我正在維護一個現有的 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() 嗎?

謝謝。

問候,平方

在 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);
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM