Wpf 调用线程无法访问此对象,因为另一个线程拥有该对象,解决方案
2016-08-11 18:04
633 查看
1.Wpf 多线程修改UI示例:
解决方案:使用Dispatcher.BeginInvoke+委托方式,修改UI
将修改UI的代码封装在委托中
//启动线程修改UI,抛出异常 ThreadPool.QueueUserWorkItem((q) => { button.Content = "张三"; }, null);
解决方案:使用Dispatcher.BeginInvoke+委托方式,修改UI
将修改UI的代码封装在委托中
//启动线程处理 Thread thread1 = new Thread(UpdateBtn); thread1.IsBackground = true;//设置为后台线程,当主线程结束后,后台线程自动退出,否则不会退出程序不能结束 thread1.Start();
//线程方法,修改Button内容 private void UpdateBtn() { int i = 0; while (true) { i++; Action action1 = () => { button.Content = i; }; button.Dispatcher.BeginInvoke(action1); // 如果不设置等待,整个程序死循环 Thread.Sleep(500); } }
相关文章推荐
- Hive在hadoop2.50-cdh5.3.6的安装部署
- 4 个技巧提高你的前端水平 - CSS进阶
- 无向图的最短路径求解算法之——Dijkstra算法
- MySql软件安装图解
- 编码练习——Java-2-流程控制
- C++类对象创建过程揭密
- AOS 自动生成代码(三) Service生成
- 在VC中使用自定义资源,FindResource,LoadResource,LockResource
- 如何使用runtime获取手机上所有app的bundleID
- MYSQL注入天书之后记
- CloudFlare防护下的破绽:寻找真实IP的几条途径
- android 有用代码片段
- ant的安装配置以及在Eclipse上集成使用
- Http协议详解
- 检查mysql迁库前后的数据记录数是否一致
- OC_06字符串
- 解决window.open 会被IE阻止的问题
- 作为函数返回类型使用
- Thinkphp 中缓存redis 支持密码登陆
- 多线程编程之终止pthread线程