WPF多线程直接访问界面的控件的解决方式
来源:互联网 发布:linux 中文字体 编辑:程序博客网 时间:2024/06/05 16:03
.net编程支持多线程直接访问界面的控件(界面创建线程与访问线程不是同一个线程),但是可以可以使用delegate来解决。
相应的解决方法如下:
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!!!"; }));
0 0
- WPF多线程直接访问界面的控件的解决方式
- wpf 非界面线程访问界面线程的控件
- C#2005后不再支持多线程直接访问界面的控件
- WPF里面多线程访问UI线程、主线程的控件
- WPF界面添加WinForm的Webbrowser控件
- 超简单,三步就能在WPF里面多线程访问UI线程、主线程的控件
- 直接可见的 控件文字界面
- WPF 如何访问其他窗体的控件
- WPF多线程刷新界面控件1
- 访问对话框控件的方式
- MFC访问控件的方式
- WPF访问控件的父控件并且修改属性
- WPF 多线程---- 子线程操作界面主线程的元素
- C#多线程操作界面控件的解决方案
- C#多线程操作界面控件的解决方案
- C#多线程操作界面控件的解决方案
- 多线程操作界面控件的解决方案
- C#多线程操作界面控件的解决方案
- 0day市场竞争激烈,商家Aglaya天价追逐漏洞
- JSP
- 第四周项目2-建立“单链表”算法库
- sql server中高并发情况下同时执行select和update语句死锁问题(一)
- spark 内存管理
- WPF多线程直接访问界面的控件的解决方式
- Windows下faster-rcnn编译
- requestFocus() 与 requestFocusFromTouch() 方法的区别
- 第4周项目1-建立单链表
- springMVC初识,最简单的
- 在ubantu14下使用composer安装laravel的记录
- Android7.0 PackageManagerService (1) 通信结构、启动和main函数
- 第四周项目2—建设“单链表”算法库
- JS—数组深层复制