[英]Application.Exit() not working
static void Main()
{
Application.EnableVisualStyles();
Application.SetCompatibleTextRenderingDefault(false);
Application.Exit();
Application.Run(new Form1());
}
為什么在調用Application.Exit()之后,應用程序沒有立即退出? 在此行之后,仍然顯示Form1。 如何立即退出應用程序。 謝謝。
* 注意: *這僅是示例。 在顯示表單之前,我會處理一些功能。 在函數中,我有一個命令代碼來調用Application.Exit(),但我想知道為什么應用程序不會立即退出。
我正在使用.NET Framework 4.0
從邏輯上講,它不起作用。 如果Application
未運行,則無法退出。
最好使用Environment.Exit
在這里。
通知所有消息泵它們必須終止,然后在處理完消息后關閉所有應用程序窗口。
問題是直到調用Run並創建表單后,您的應用程序的消息泵才會啟動。
通常從消息循環內調用Exit方法,並強制Run返回。
Application.Exit是關閉程序的“好方法”。 未完成的Windows消息將被處理,然后所有窗口才會關閉。 這也意味着Application.Exit
僅在Windows消息循環運行時(即程序在Application.Run
內部)才有意義。 你叫Application.Exit
之前Application.Run
,所以沒有消息循環退出。
從文檔中:
通知所有消息泵它們必須終止,然后在處理完消息后關閉所有應用程序窗口。
您正在尋找的可能是System.Environment.Exit ,它或多或少會殺死進程。 Environment.Exit
仍會進行一些清理。 如果需要立即終止該過程,可以使用System.Environment.FailFast 。
增加return;
語句而不是Application.Exit();
下面的代碼應為您提供幫助。
if (Application.MessageLoop)
Application.Exit();
else
Environment.Exit(1);
該應用程序當時甚至還沒有運行。 呼叫出口無效。 在主函數中要返回。 像這樣:
static void Main()
{
Application.EnableVisualStyles();
Application.SetCompatibleTextRenderingDefault(false);
return;
Application.Run(new Form1());
}
根據MSDN, Application.Exit()
通知所有消息泵它們必須終止,然后在處理完消息后關閉所有應用程序窗口。
由於還沒有應用程序窗口,所以什么也沒有發生(據我所知)。 然后,您隨后啟動應用程序,因為Application.Exit()
不會像您認為的那樣停止程序執行。
我認為您的問題實際上並不像您在問題中描述的那么簡單-在任何情況下都只需return;
無需調用Application.Run()
可能是解決方案。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.