c#退出應用程序辦法

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),在程序退出時觸發全部線程的終止條件。

相關文章
相關標籤/搜索