C 跨執行緒訪問winform控制項的方法

2021-08-28 22:57:18 字數 1371 閱讀 8154

方法一:system.windows.forms.control.checkforillegalcrossthreadcalls = false; 

不推薦使用這種方式,禁止編譯器對跨執行緒訪問做檢查的方式實現。

方法二:使用delegate和invoke

private delegate void updatelabel2delegate(string message);

void updatelabel2(string message)

);

new object );

}

else

}

或者:

void updatelabel2(string message)

);

}

或者:(不使用委託方式)

private void button2_click(object sender, eventargs e)

private void updatelabel2(object str)

;

// 或者

// actionactiondelegate = delegate(string txt) ;

this.label2.invoke(actiondelegate, str);

}

else

}

方法三:使用backgroundworker元件

private void button4_click(object sender, eventargs e)

}

void bw_dowork(object sender, doworkeventargs e)

void bw_runworkercompleted(object sender, runworkercompletedeventargs e)

C 之WinForm跨執行緒訪問控制項例項

具體實現方法如下 1 跨執行緒訪問控制項委託和類的定義 複製 如下 using system using system.windows.forms namespace ahwildlife.utils 2 用法 在form1.cs檔案的執行緒方法中 複製 如下 invokedelegate invo...

關於Winform中控制項的跨執行緒訪問

閒著沒事想起來用winform做乙個隨機的抽號程式,咋看來這麼個東西其實並不難,不過對於乙個菜鳥來說其實並不簡單!尤其是對於多執行緒不是特別熟悉的新手來說。首先,介面比較簡單winform,上傳好麻煩 既然是隨機抽取號碼,就得有隨機數 其實關鍵不在這裡,圖省事就random了 可是在用到多執行緒的時...

c 跨執行緒訪問控制項

訪問 windows 窗體控制項本質上不是執行緒安全的。如果有兩個或多個執行緒操作某一控制項的狀態,則可能會迫使該控制項進入一種不一致的狀態。還可能出現其他與執行緒相關的 bug,包括爭用情況和死鎖。所以,確保以執行緒安全方式訪問控制項是非常重要的。private static object dat...