WPF多執行緒直接訪問介面的控制項的解決方式

2021-07-22 23:40:25 字數 866 閱讀 4072

.net程式設計支援多執行緒直接訪問介面的控制項

(介面建立執行緒與訪問執行緒不是同乙個執行緒

),但是可以可以使用

delegate

來解決。

相應的解決方法如下:

wpfdispatcher.invoke

方法,只有在其上建立

dispatcher

的執行緒才可以直接訪問

dispatcherobject

。若要從不同於在其上建立

dispatcherobject

的執行緒的某個執行緒訪問

dispatcherobject

,請對與

dispatcherobject

關聯的dispatcher

呼叫invoke

或begininvoke

。需要強制執行緒安全的

dispatcherobject

的子類可以通過對所有公共方法呼叫

verifyaccess

來強制執行緒安全。這樣可以保證呼叫執行緒是在其上建立

dispatcherobject

的執行緒。

**:this.lbl.dispatcher.invoke(new action(()=>));

this.lbl.dispatcher.invoke(new action(()=>));

winfromcontrol.invoke

方法(delegate)

,在擁有此控制項的基礎視窗控制代碼的執行緒上執行指定的委託。

**:this.lbl.invoke(new action(()=>));

C 2005後不再支援多執行緒直接訪問介面的控制項

c 2005後不再支援多執行緒直接訪問介面的控制項 介面建立執行緒與訪問執行緒不是同乙個執行緒 不過可以使用delegate來解決 1.宣告乙個delegate和定義乙個delegate的實現函式 2.定義執行緒函式 在另乙個執行緒中可以對介面控制項進讀操作 private void progres...

WPF多執行緒訪問控制項

大家知道wpf中多執行緒訪問ui控制項時會提示ui執行緒的資料不能直接被其他執行緒訪問或者修改,該怎樣來做呢?分下面兩種情況 1.winform程式 1 第一種方法,使用委託 private delegate void settextcallback string text private void...

WPF多執行緒訪問主線程中的ui控制項

wpf中的ui控制項只能由建立該ui的執行緒進行操作,但是經常有些複雜操作需要另起乙個執行緒來完成,而新的次執行緒計算的後又需要操作主線程的ui,可通過以下方法實現 第一步,定義委託 public delegate void delegate child 定義操作次執行緒的委託 public del...