C 跨執行緒的給空間賦值

2021-06-12 21:06:22 字數 464 閱讀 6685

上篇文章已經寫過 又發現一種更簡單的方法,和大家分享,通常,c#是不許跨執行緒賦值的,如:form1中有個textbox, 若開闢乙個新的執行緒來給

這個textbox賦值時,會出現異常。

msdn中提出了具體的做法,較為繁瑣,就不說了。

我這裡有個簡單辦法。

大多數能賦值的控制項都有invoke 方法,invode方法中不是要乙個delegate型引數麼,

那簡單,可以隨便找個.net自定義的delegate,如threadstart就行了,因此都可以這樣做:

yourcontrol.invoke(new threadstart(delegate()));  

或者yourcontrol.invoke(new action(()=>yourcontrol.text = str));

簡單吧,,你就再無需定義委託了,也不用寫額外的方法等繁瑣的事情了。 

在這個園裡找到的,原文如下連線

C 跨執行緒對控制項賦值

跨執行緒對控制項賦值 1.第一種使用backgroundworker元件 推薦使用這個方法 backgroundworker是.net裡面用來執行多執行緒任務的控制項,它允許程式設計者在乙個單獨的執行緒上執行一些操作 比如資料庫大批量資料獲取或者操作 private void button1 cli...

給F7空間賦值

bizbox.setdisplayformat number bizbox.seteditformat number bizbox.setcommitformat number name bizbox.setvalue value row.getcell depot seteditor new kd...

C 跨執行緒呼叫

問題 執行一下 報錯 大概意思就是跨執行緒操作,label沒法兒賦值 1.private void mainloop 8.解決方案 一 在5 6行中間新增以下 checkforillegalcrossthreadcalls false 禁止編譯器對跨執行緒訪問做檢查 二 使用deletgate in...