WPF執行緒呼叫UI元素

2022-02-18 04:47:24 字數 559 閱讀 7891

wpf開發中mvvm模式下,通過執行緒呼叫ui元素會報錯,提示「呼叫執行緒必須為 sta,因為許多 ui 元件都需要。」。

解決方法有兩個:

一、

public

delegate

void

delefunc();

public

void

func()

new delefunc(func));

二、

thread netserver = new thread(new

threadstart(netserverthreadfunc));

netserver .setapartmentstate(apartmentstate.sta);

netserver .isbackground = true

;netserver.start();

system.windows.threading.dispatcher.run();

但是,如果是全屏介面,通過第二種方法呼叫出子窗體時windows系統的工作列也會顯示,推薦使用第一種。

WPF 執行緒操縱UI問題

wpf只允許ui執行緒修改ui,其他執行緒必須通過invoke 委託 安全性 winform可以開啟 關閉 只允許ui執行緒修改ui 非ui執行緒直接修改ui,會報錯 system.invalidoperationexception 呼叫執行緒無法訪問此物件,因為另乙個執行緒擁有該物件。正確的做法是...

WPF跨執行緒更新UI控制項

1.預設情況下,在windows應用程式中,net framework不允許在乙個執行緒中直接操作另乙個執行緒中的控制項。winform中實現跨執行緒操作控制項的兩種方法 1 關閉執行緒安全檢查 control.checkforillegalcrossthreadcalls false 2 使用控制...

WPF學習筆記2 WPF子執行緒更新UI

wpf學習筆記2 wpf子執行緒更新ui 1.dispatcher wpf應用程式的主線程負責建立ui介面 接收輸入 處理事件等任務,在開發中常用子執行緒處理一些耗時的操作 為了主線程能及時響應,防止假死 但是子執行緒是不能直接更新ui介面。dispatcher的作用是管理執行緒工作項佇列,我們可以...