c#解決多執行緒視窗ui假死--委託的使用:
1.使用了thread.sleep()模擬線程耗時執行;
2.用parameterizedthreadstart建立了乙個帶引數的執行緒,使ui介面上輸入的值能傳遞到執行緒中;
3.執行緒執行期間,能夠拖動ui視窗;
4.執行緒結束後,結果顯示到ui上。
5.本例子旨在理解如何解決ui卡死問題,使用該方法會是否會出現什麼問題,暫不予**。
主**如下:
using system;
using system.collections.generic;
using system.componentmodel;
using system.data;
using system.drawing;
using system.linq;
using system.text;
using system.windows.forms;
using system.threading; //需新增此引用
public delegate void calchandle(int num); //宣告乙個委託
private void button1_click(object sender, eventargs e)
//執行緒方法
public void taskdo(object num)
catch (exception ex)
}public void updateui(int num)}}
執行結果:
C 多執行緒使用委託修改介面UI
多執行緒修改介面時,需要考慮到一般多執行緒讀髒資料,資料重寫等問題,所以一般把多線成修改介面的方法交由ui執行緒本身執行,這樣就使多執行緒修改ui變成單執行緒修改了,問題得到簡化 多執行緒如何將修改介面的方法交給ui執行緒呢,就是用c 的委託了 我一般的做法如下 delegate void upda...
C 窗體 UI執行緒委託
很多時候寫windows程式都需要結合多執行緒,在c 中用如下得 來建立並啟動乙個新的執行緒。thread thread new thread new threadstart threadproc 例項化乙個執行緒 thread.isbackground true 將執行緒改為後台執行緒 threa...
c 委託與多執行緒
很多時候寫windows程式都需要結合多執行緒,在.net中用如下得 來建立並啟動乙個新的執行緒。public void threadproc thread thread new thread new threadstart threadproc thread.isbackground true t...