C 解決多執行緒視窗UI假死 委託的使用

2021-09-17 23:03:28 字數 950 閱讀 4101

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...