[英]Windows form application not closing
我在c#中創建一個Windows表單應用程序,並且在關閉主表單后,該進程永遠不會被終止。 這個過程處於后台,占用了記憶。 我嘗試了很多方法,比如Application.exit和Environment.exit,但沒有一個方法有效。
我努力了:
private void Form1_FormClosing(Object sender, FormClosingEventArgs e)
{
Environment.Exit(0);
}
和
static void Main()
{
Application.EnableVisualStyles();
Application.SetCompatibleTextRenderingDefault(false);
Application.Run(new Form1());
Environment.Exit(0);
}
}
我已經使用Application.Exit和Environment.Exit嘗試了這兩種方法
我只想要一個在關閉主表單時殺死進程的解決方案
仔細檢查后,只有當按下按鈕切換到我的項目的第二個表單時才會出現此錯誤:
Form2 f = new Form2();
f.Show();
this.Hide();
我用過:
Environment.Exit(0);
Application.Exit();
它在我的一個項目上為我工作。
如果還沒有,您需要使用[STAThread]
屬性標記主方法(請參閱https://stackoverflow.com/a/1361048/1497128 ),如下所示 -
[STAThread]
private static void Main()
{
Application.EnableVisualStyles();
Application.SetCompatibleTextRenderingDefault(false);
Application.Run(new Form1());
}
如果是,那么請確保......
FormClosing
事件,那么請確保您沒有設置Cancel = true
您的解決方案都不是必需的,WinForm應用程序在主窗體關閉時終止進程(假設沒有其他阻塞,例如另一個前台線程)。 您可以通過在Visual Studio中創建一個新的WinForm項目,運行它並關閉表單來測試它。
除非您使用特定的邏輯來控制應用程序何時退出,否則您絕對不需要Environment.Exit(0)
(主要用於控制台應用程序)或Application.Exit()
(與WinForm應用程序一起使用)。 關閉表單應該這樣做,這可以通過調用form.Close()
以編程方式完成。
使用按鈕時單擊以打開新表單使用USING
using (Form1 frm = new Form())
{
frm.ShowDialog();
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.