Application.ExitThread();//退出目前線程上的消息循環,并關閉該線程上的所有視窗。
System.Environment.Exit(0);//終止目前程序并為基礎作業系統提供指定的退出代碼
Process.GetCurrentProcess().Kill();//終止目前正在運作的線程
但是這些方法都是強制關閉,那麼我們如何使用Application.Exit();正常的關閉整個程式呢?
Application.Exit();// 方法停止在所有線程上運作的所有消息循環,并關閉應用程式的所有視窗
我們看的非常清楚,停止在所有線程上運作的所有消息循環,既然是所有,那又為何關閉不掉呢?這裡我們要搞清楚一點的就是,新開的程序屬于另一個domain(域),你要搞清楚的是程序不等于線程,application.exit();是關閉目前程序的所有線程,不能關閉它建立的程序。新程序和本程序無任何關系。
是以,我們可以這樣了解Application.Exit();是以,我們要想在目前程序上使用Application.Exit();關閉其他程序,就要把其他的程序設定為目前程序的背景程序(IsBackground),而當在主線程中建立了一個線程時,那麼該線程的IsBackground預設是設定為FALSE的。當主線程退出的時候,IsBackground=FALSE的線程還會繼續執行下去,直到線程執行結束。隻有IsBackground=TRUE的線程才會随着主線程的退出而退出。當初始化一個線程,把Thread.IsBackground=true的時候,訓示該線程為背景線程。背景線程将會随着主線程的退出而退出。
然後它才可以被目前程序所控制,然後才可以用Application.Exit();結束。
