關於 從不是建立控制項的執行緒訪問它」

2021-05-10 11:05:36 字數 446 閱讀 3855

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