[英]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.Exit
或Environment.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.