WPF 執行緒操縱UI問題

2022-03-12 04:36:12 字數 737 閱讀 6864

wpf只允許ui執行緒修改ui,其他執行緒必須通過invoke、委託(安全性)

winform可以開啟/關閉「只允許ui執行緒修改ui」

非ui執行緒直接修改ui,會報錯

system.invalidoperationexception:「呼叫執行緒無法訪問此物件,因為另乙個執行緒擁有該物件。」
正確的做法是使用dispatcherdispatcher簡單暴力,適合小工作量的修改一些介面內容

長期後台工作應該考慮使用backgroundworker,有很多相關功能庫

參考資料

執行緒處理模型

示例**

changeui

WPF執行緒呼叫UI元素

wpf開發中mvvm模式下,通過執行緒呼叫ui元素會報錯,提示 呼叫執行緒必須為 sta,因為許多 ui 元件都需要。解決方法有兩個 一 public delegate void delefunc public void func new delefunc func 二 thread netserv...

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的作用是管理執行緒工作項佇列,我們可以...