前不久,做乙個winform小程式,是給客戶導資料用的。當時就發現除錯的時候,執行緒有點問題,到某個點時就走不動了。但是執行確實沒有問題的。
只是在關閉窗體後,資源管理器裡,一大堆程序。。。
當時,客戶急著用,小測了下,匯出資料無誤,程序就先不管了。
thread th = newthread(excute);
th.isbackground = true;
這樣就解決問題了。
這個屬性的意思就是把執行緒設定為後台執行緒。
然後關閉程序的同時,執行緒也會隨之關閉。
不知道各位還有什麼妙招,多多指導哈
度娘說:
程式退出的方法:
我是用了 th.isbackground = true 就解決了的,system.environment.exit(0);是不是更徹底些呢?
附上isbackground對執行緒的重要作用
1、當在主線程中建立了乙個執行緒,那麼該執行緒的isbackground預設是設定為false的。
2、當主線程退出的時候,isbackground=false的執行緒還會繼續執行下去,直到執行緒執行結束。
3、只有isbackground=true的執行緒才會隨著主線程的退出而退出。
4、當初始化乙個執行緒,把thread.isbackground=true的時候,指示該執行緒為後台執行緒。後台執行緒將會隨著主線程的退出而退出。
5、原理:只要所有前台執行緒都終止後,clr就會對每乙個活在的後台執行緒呼叫abort()來徹底終止應用程式。
C winform子窗體關閉後父窗體不前置的問題
父窗體呼叫子窗體的 try ab.showdialog catch exception ex 子窗體關閉 this.dispose 以上 造成子窗體dispose後預設return回系統,所以父窗體不能被啟用。解決方法如下 1.父窗體呼叫子窗體 try ab.showdialog ab.dispos...
C Winform窗體工具類(二)窗體關閉提示
在開發中,有一些常常用到的方法,每次查詢以前寫的比較麻煩 自己寫有在做重複工作 所以總乙個小的工具類,隨時新增內容 顯示提示資訊 要控制的窗體 是否顯示提示資訊 public static void formclose this form form,boolean isshowtip true 呼叫...
C 關閉子窗體時,同時關閉父窗體的一種方法
這個方法是最簡單的 定義子窗體 form form new form 註冊乙個子窗體的disposed 事件 form.disposed new eventhandler form disposed 在子窗體的closing中加入dispose private void form2 formclos...