textbox的text屬性等等。如果直接設定程式必定會報出:從不是建立控制項的執行緒訪問它,這個異常。通
常我們可以採用兩種方法來解決。一是通過設定control的屬性。二是通過delegate,而通過delegate也有
兩種方式,一種是常用的方式,另一種就是匿名方式。下面分別加以說明.
首先,通過設定control的乙個屬性值為false.
我們可以在form_load方法中新增:control.checkforillegalcrossthreadcalls=false;來解決。設定為
。其次,通過delegate的方法來解決。
普通的委託方法例如:
delegate void safesettext(string strmsg);
private void settext(string strmsg)
);
執行緒間操作無效 從不是建立控制項的執行緒訪問它
using system using system.threading using system.windows.forms private void button1 click object sender,eventargs e start 出現上述錯誤的原因是 net禁止了跨執行緒呼叫控制項。只...
執行緒間操作無效 從不是建立控制項的執行緒訪問它
下面介紹幾種跨執行緒呼叫控制項的方法 這是最簡單的辦法,相當於不檢查執行緒之間的衝突,允許各個執行緒隨便亂搞,最後lable1控制項的值是什麼就難以預料了 不推薦使用這種方法 public form1 呼叫控制項的invoke方法,就可以控制控制項了,例如 private void button2 ...
執行緒間操作無效 從不是建立控制項的執行緒訪問它。
private void button1 click object sender,eventargs e t.start 上面的 會報錯,從新的執行緒訪問其他執行緒的控制項 這是因為.net禁止了跨執行緒呼叫控制項,否則誰都可以操作控制項,最後可能造成錯誤。當然,設定checkforillegalc...