wpf只允許ui執行緒修改ui,其他執行緒必須通過invoke、委託(安全性)
winform可以開啟/關閉「只允許ui執行緒修改ui」
非ui執行緒直接修改ui,會報錯
system.invalidoperationexception:「呼叫執行緒無法訪問此物件,因為另乙個執行緒擁有該物件。」
正確的做法是使用dispatcher
dispatcher簡單暴力,適合小工作量的修改一些介面內容
長期後台工作應該考慮使用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的作用是管理執行緒工作項佇列,我們可以...