在做WPF开发时,如果直接在子线程里更新UI会报错—–“调用线程无法访问此对象,因为另一个线程拥有该对象。”,这是因为WPF禁止在非UI线程里直接更新UI界面。

解决方案:
  在子线程里调用Dispatcher.BeginInvoke()或者Invoke()方法。

   例如更新一个Button上的文字内容,可以在子线程里这样写:

this.myButton.Dispatcher.BeginInvoke(new Action(()=>

    this.myButton.Content = "change button content!!!";
}));

  这里使用了Action()委托。Dispatcher.BeginInvoke()代表异步执行,不等待委托结束就更新。Dispatcher.Invoke()代表同步执行,需等待委托执行完成。

WPF子线程更新UI相关推荐

  1. Android子线程更新UI的方法总结

    消息机制,对于Android开发者来说,应该是非常熟悉.对于处理有着大量交互的场景,采用消息机制,是再好不过了.有些特殊的场景,比如我们都知道,在Android开发中,子线程不能更新UI,而主线程又不 ...

  2. android 关于关于子线程更新UI的一些事

    我们在看一些书或者博客时总是会看到一句话"android更新UI操作都是在Main主线程中,子线程中不能进行UI更新操作"那么,在子线程中真的不能进行UI的更新操作吗? //源码环 ...

  3. AndroidStudio子线程更新UI的几种方式

    在安卓开发中,大部分情况下是不能在子线程直接更新UI的,只能在UI线程更新UI,其根本原因在于加入在一个Activity中有多个线程去更新UI,且没有加锁机制,可能会产生界面混乱的情况,但是如果都加锁 ...

  4. Android中Activity、Window、ViewRootImpl与子线程更新UI

    三者层级关系 1.Window Window是一个抽象类,唯一的实现类是PhoneWindow Window分为三种类型应用Window.子Window.系统Window.子Window无法独立存在必 ...

  5. Android为什么不能在子线程更新UI

    Android为什么不能在子线程更新UI Android为什么不能在子线程更新UI? 如果不做这个校验,是不是我也可以正常在子线程更新UI 但是google为什么要这样去设计呢 ViewRootImp ...

  6. 面试官问我:Andriod为什么不能在子线程更新UI?

    记得看文章三部曲,点赞,评论,转发. 微信搜索[程序员小安]关注还在移动开发领域苟活的大龄程序员,"面试系列"文章将在公众号同步发布. 1.前言 看完<你为什么在现在的公司不 ...

  7. C#利用Invoke和委托实现子线程更新UI(方式1)

    UI布局如下 委托定义如下: public delegate void SetMessageDelegate(string message); From1的代码如下: public partial c ...

  8. pyqt5 子线程更新ui

    from PyQt5.QtCore import * from PyQt5.QtGui import * from PyQt5.QtWidgets import * import time''' 信号 ...

  9. 子线程更新UI,牵扯activity的启动过程

    http://m.blog.csdn.net/article/details?id=43449123 点击打开链接

  10. 为什么我的子线程更新了 UI 没报错?借此,纠正一些Android 程序员的一个知识误区...

    开门见山: 这个误区是:子线程不能更新 UI ,其应该分类讨论,而不是绝对的. 半小时前,我的 XRecyclerView 群里面,一位群友私聊我,问题是: 为什么我的子线程更新了 UI 没报错? 我 ...

最新文章

  1. SQLServer中使用Split功能分割字符串
  2. 如何修改Chrome默认字体
  3. SAP Spartacus 当购物车里添加的商品个数过多后引起的性能问题以及解决方案
  4. 前端学习(1402):多人管理22验证joi
  5. 计算机网络原理关于实验中几个指令使用的复习——网络层
  6. 面试官 | Java 对象不使用时为什么要赋值为 null?
  7. 【linux指令】dialog实现终端下的GUI-2
  8. 你的城市撒币了吗?Python 爬取分析全国消费券发放数据
  9. 高斯过程回归python_scikit-learn中的多输出高斯过程回归
  10. 北京理工大学语音识别技术.ppt
  11. 虚拟机vm安装 黑群晖 DS3617xs 6.2
  12. 【MM32F5270开发板试用】+ TFTLCD IO口方式驱动
  13. java excel下拉框_Java设置Excel下拉列表
  14. 在利用DXP2004软件进行PCB设计时——自制元器件封装如何添加网络(布线问题)
  15. 编写一个JSP页面,利用Scriptlet编写一段计算代码,要求用0做除数,并使用page指令将该错误信息显示在另一个JSP页面上,产生的错误信息为“错误,不能用0做除数.“
  16. mysql analyze_MySQL中的analyze与optimize
  17. [机器学习]基于OpenCV实现最简单的数字识别
  18. 面试3连炮:聊聊ES写入数据的原理?查询数据的原理?倒排索引了解吗?
  19. 垃圾分类的正确姿势?用 OpenCV 人工智能图像识别技术来进行
  20. 解决:FTP隔离用户ftp将数据发送到服务器之前不加密或编码,要保护密码和数据数据,请用WEB文件夹(WenDAV)

热门文章

  1. LAMMPS生成粗糙表面的in文件脚本(可调节微结构高、长和宽)
  2. 第六章 传统金融行业的区块链战略
  3. 机器学习笔记 - 探索性数据分析(EDA) 学习进阶
  4. 怎么p出模糊的照片_ps怎么把模糊的图片变清楚?ps把模糊图片高清化的具体教程...
  5. 关于树莓派(一):如何让树莓派和笔记本直连SSH
  6. 如何快速win10下安装win7双系统
  7. 2021-2027全球及中国数控钻机行业研究及十四五规划分析报告
  8. 生态 | 国内数据库领域权威学术会议NDBC 2020成功举办,人大金仓受邀参会并发表主题演讲...
  9. 【财经期刊FM-Radio|2021年01月27日】
  10. C语言 | 逻辑运算符