c#退出應用程序辦法有c#
Application.Exit();//好像只在主線程能夠起做用,並且當有線程,或是阻塞方法的狀況下,很容易失靈
this.Close();//只是關閉當前窗體。
Application.ExitThread();//退出當前線程上的消息循環,並關閉該線程上的全部窗口。 也會失靈
Environment.Exit(0); //前面三種方法都不能很好的退出程序,此方法能夠徹底退出程序,這個要強制得多。
Process.GetCurrentProcess().Kill();//此方法徹底奏效,絕對是徹底退出。 this
一些操做能夠關注:GC.Collect() .net
另:線程
1,將主線程設置爲後臺進程。方法是將主線程的isBackground = true。聽說,這樣在關閉主程序時後關閉主線程,並關閉全部的線程。
2,有人列出了c#程序退出的幾種方法:設計
(1)Application.Exit()//好像只在主線程能夠起做用,並且當有線程,或者是阻塞方法的狀況下,很容易失靈。進程
(2) System.Environment.Exit(0) //不管在主線程或其它線程,均可以吧程序結束乾淨it
(3)Application.ExitThread();io
可是我發現(2)這個方法在.netFrame Work compact下是沒有的我這樣程序設計
最後個人解決辦法是強制退出程序進程,代碼以下:後臺
System.Diagnostics.Process tt = System.Diagnostics.Process.GetProcessById(System.Diagnostics.Process.GetCurrentProcess().Id);
tt.Kill();
固然,這種方法很暴力。良好的程序設計應該是全部的線程都有條件能夠結束循環以退出(包括timer),在程序退出時觸發全部線程的終止條件。