using system;
using system.threading;
using system.windows.forms;
private
void
button1_click
(object sender,
eventargs e)})
.start()
;}}}
出現上述錯誤的原因是:.net禁止了跨執行緒呼叫控制項。只有建立介面的主線程才能訪問介面上的控制項label1,新建立的執行緒不能訪問。有兩種方法解決該問題:
在窗體建構函式中設定control.checkforillegalcrossthreadcalls =false。
public
form1()
控制項是在與呼叫執行緒不同的執行緒上建立的,可以通過 invoke 方法對控制項進行呼叫。
using system;
using system.threading;
using system.windows.forms;
private
void
button1_click
(object sender,
eventargs e)
;invoke
(action);}
}).start()
;}}}
執行緒間操作無效 從不是建立控制項「XX」的執行緒訪問它
在進行執行緒方面的程式設計的時,遇到這樣的錯誤 執行緒間操作無效 從不是建立控制項 xx 的執行緒訪問它 解決方法 在建構函式中加入如下 checkforillegalcrossthreadcalls false 訪問 windows 窗體控制項本質上不是執行緒安全的。如果有兩個或多個執行緒操作某一...
執行緒間操作無效 從不是建立控制項的執行緒訪問它
下面介紹幾種跨執行緒呼叫控制項的方法 這是最簡單的辦法,相當於不檢查執行緒之間的衝突,允許各個執行緒隨便亂搞,最後lable1控制項的值是什麼就難以預料了 不推薦使用這種方法 public form1 呼叫控制項的invoke方法,就可以控制控制項了,例如 private void button2 ...
執行緒間操作無效 從不是建立控制項的執行緒訪問它。
private void button1 click object sender,eventargs e t.start 上面的 會報錯,從新的執行緒訪問其他執行緒的控制項 這是因為.net禁止了跨執行緒呼叫控制項,否則誰都可以操作控制項,最後可能造成錯誤。當然,設定checkforillegalc...