關於幾種退出方法

參考http://www.jb51.net/article/58816.htm

http://www.cnblogs.com/fearless/articles/2364408.html

1.Environment.Exit 方法 (Int32)

強制退出當前線程,這是當前退出線程中最可靠,最徹底的,退出最乾淨的一種方法,不管什麼線程都可以退出,哈,強大吧!!!^^
該方法的含義是 退出此線程,並將退出代碼傳給系統
如果參數爲 “0”,表示處理已經成功完成。

2.this.Close()方法

該方法如果關閉的不是住線程,則窗體被關閉了,程序並未退出,另外如果有託管線程(非主線程),也無法乾淨退出。
當應用程序是多文檔窗體時,要想退出所有,必須手動的爲每個窗體調用Dispose()方法,標記爲垃圾回收。

3.Application.Exit()方法

通知所有消息泵必須終止,並且在處理了消息以後關閉所有應用程序窗口。該方法在多個線程或阻塞方法時,可能會造成失靈。

該方法停止在所有線程上運行的所有消息循環,並關閉應用程序的所有窗口。該方法並不強制應用程序退出。Exit   方法通常從一個消息循環內調用,該方法強制   Run   返回。若要只退出當前線程的某個消息循環,請調用   ExitThread。 

警告       當調用   Application.Exit   方法以退出應用程序時,不引發   Form.Closed   和  Form.Closing   事件。如果在必須執行的其中一個事件中有驗證代碼,則在調用   Exit   方法之前,應分別爲每個打開的窗體調用   Form.Close   方法。 

windows運行和初始化後,就進入消息循環,既然exit強制run返回那程序也就結束了,就會調用析構函數釋放內存 。

4.Application.ExitThread()方法

強制中止調用線程上的所有消息,同樣面臨其它線程無法正確退出的問題。





發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章