.net程式設計支援多執行緒直接訪問介面的控制項
(介面建立執行緒與訪問執行緒不是同乙個執行緒
),但是可以可以使用
delegate
來解決。
相應的解決方法如下:
wpf:dispatcher.invoke
方法,只有在其上建立
dispatcher
的執行緒才可以直接訪問
dispatcherobject
。若要從不同於在其上建立
dispatcherobject
的執行緒的某個執行緒訪問
dispatcherobject
,請對與
dispatcherobject
關聯的dispatcher
呼叫invoke
或begininvoke
。需要強制執行緒安全的
dispatcherobject
的子類可以通過對所有公共方法呼叫
verifyaccess
來強制執行緒安全。這樣可以保證呼叫執行緒是在其上建立
dispatcherobject
的執行緒。
**:this.lbl.dispatcher.invoke(new action(()=>));
this.lbl.dispatcher.invoke(new action(()=>));
winfrom:control.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...