C 執行緒中處理介面委託的小例子

2021-04-22 21:38:48 字數 877 閱讀 7248

在多執行緒中處理介面的響應資訊,確實沒有單執行緒那麼容易,直接賦值就ok了,必須得通過委託到主線程中才可以處理,這個小demo實現了兩個執行緒同時在主介面上進行輸入.當初自己怎麼也弄不明白這些道理,只要弄出第乙個例項,後面的就輕鬆多了,萬事入門難嘛.直接貼**,解釋都在注釋裡了,其他就不多廢話了.

private

void button1_click(object sender, eventargs e)

); thread s1 = new thread(addwebper1s);

//isbackground是申明乙個後台執行緒,為什麼做後台執行緒呢?

//因為主線程退出的時候,後台執行緒會自動銷毀,否則回駐留在記憶體中

s1.isbackground = true;

s1.start();

thread s2 = new thread(addwebper2s);

s2.isbackground = true;

s2.start();            

}private

void addwebper2s()

}private

void addwebper1s()

}delegate

void addmsg(string msg);

private

void addmsg(string msg)

else}小結

雖然在多線中訪問主線中的控制項資源,表象看來,好象必須要對改控制項進行互斥鎖,但是,實際上是沒有必要的,這點我也沒有弄明白為什麼,在多執行緒中,複雜的介面響應也會給程式帶來更多的bug,測試成本會無形的擴大,個人建議,如果是服務端程式就使用控制太的console輸出就可以了,如果是使用者體驗要求比較高的程式,需要進行多方面的壓力測試才行.

c 語言執行緒小例子

例程 下面通過乙個簡單例程example.c來展示linux下的c語言多執行緒操作。example.c include include void thread void int i for i 0 i 3 i printf this is a pthread.n int main void pthr...

C 多執行緒使用委託修改介面UI

多執行緒修改介面時,需要考慮到一般多執行緒讀髒資料,資料重寫等問題,所以一般把多線成修改介面的方法交由ui執行緒本身執行,這樣就使多執行緒修改ui變成單執行緒修改了,問題得到簡化 多執行緒如何將修改介面的方法交給ui執行緒呢,就是用c 的委託了 我一般的做法如下 delegate void upda...

乙個簡單的小例子讓你明白c 中的委託

模擬主持人發布乙個問題,由多個嘉賓來回答這個問題。分析 從需求中抽出host 主持人 類和guests 嘉賓 類。作為問題的發布者,host不知道問題如何解答。因此它只能發布這個事件,將事件委託給多個嘉賓去處理。因此在host 類定義事件,在guests類中定義事件的響應方法。通過多番委託的 將響應...