簡體   English   中英

Application.Exit

[英]Application.Exit

我正在使用VSTS 2008 + .Net 3.5 + C#來開發Windows窗體應用程序。 我的困惑是,似乎Application.Exit不強制應用程序終止? 如果沒有,我應該調用哪個方法使應用程序終止?

編輯1:

通常主要方法是這樣的,如何在不調用Environment.Exit的情況下優雅地退出Main函數?

    static void Main()
    {
        Application.EnableVisualStyles();
        Application.SetCompatibleTextRenderingDefault(false);
        try
        {
            Application.Run(new Form1());
        }
        catch (Exception ex)
        {
            Console.WriteLine (ex.Message);
        }
    }

喬治,提前謝謝

Application.Exit真的只是非常輕柔地詢問消息循環。

如果您希望您的應用程序退出,最好的方法是優雅地將其從Main刪除,並干凈地關閉任何其他非后台線程。

如果你想要野蠻...... Environment.ExitEnvironment.FailFast 注意這很苛刻 - 就像殺死你自己的Process

請嘗試以下方法:

Process.GetCurrentProcess().Kill();

Environment.Exit不適用於Winforms和Environment.FailFast會拋出自己的異常。

如果你的應用程序在調用Application.Exit時沒有正常退出,那么(顯然)有一些東西阻止它這樣做。 這可以是從FormClosing事件中的表單設置e.Cancel = true到不是仍在運行的后台線程的線程。 我建議你仔細研究一下是什么讓你的過程保持活力,並以一種很好的方式關閉它。 這應該使您的應用程序也很好地關閉。

通常,在winforms應用程序中,關閉主窗體應該足夠了。

我用

if (System.Windows.Forms.Application.MessageLoop)
{
   // Use this since we are a WinForms app
   System.Windows.Forms.Application.Exit();
}
else
{
   // Use this since we are a console app
   System.Environment.Exit(1);
}

來自http://geekswithblogs.net/mtreadwell/archive/2004/06/06/6123.aspx

當我發現在程序中打開一個新的窗體/窗口時,我遇到了同樣的問題,只有HIDING第二個窗體(不關閉它),會阻止主窗體通過Application.Exit()正確退出;

在這種情況下有兩種解決方案。 首先是在主窗體上使用Close()而不是Application.Exit()。 第二種解決方案是使用以下代碼:

if (secondForm != null && !secondForm.IsDisposed) secondForm.Dispose();

我發現你只需要做的就是做application.exit而你所要做的就是把它放到End中就足夠了,End命令關閉它

暫無
暫無

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

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