調用線程無法訪問此對象,因為另一個線程擁有該對象


 

 

WPF:Dispatcher.Invoke 方法,只有在其上創建 Dispatcher 的線程才可以直接訪問DispatcherObject。若要從不同於在其上創建 DispatcherObject 的線程的某個線程訪問 DispatcherObject,請對與 DispatcherObject 關聯的 Dispatcher 調用 Invoke 或 BeginInvoke。需要強制線程安全的 DispatcherObject 的子類可以通過對所有公共方法調用 VerifyAccess 來強制線程安全。這樣可以保證調用線程是在其上創建 DispatcherObject 的線程。

  代碼:

  this.lbl.Dispatcher.Invoke(new Action(()=>{ this.lbl.Text = "this is a test!!!"; }));
     this.lbl.Dispatcher.Invoke(new Action(()=>{ this.lbl.Text = "this is a test!!!"; }));

Winfrom:Control.Invoke 方法 (Delegate),在擁有此控件的基礎窗口句柄的線程上執行指定的委托。

  代碼:

          this.lbl.Invoke(new Action(()=>{ this.lbl.Text = "this is a test!!!"; }));   


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM