執行緒間操作無效 從不是建立控制項的執行緒訪問它

2021-09-29 05:53:26 字數 755 閱讀 9389

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