WPF子线程更新UI
在做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相关推荐
- Android子线程更新UI的方法总结
消息机制,对于Android开发者来说,应该是非常熟悉.对于处理有着大量交互的场景,采用消息机制,是再好不过了.有些特殊的场景,比如我们都知道,在Android开发中,子线程不能更新UI,而主线程又不 ...
- android 关于关于子线程更新UI的一些事
我们在看一些书或者博客时总是会看到一句话"android更新UI操作都是在Main主线程中,子线程中不能进行UI更新操作"那么,在子线程中真的不能进行UI的更新操作吗? //源码环 ...
- AndroidStudio子线程更新UI的几种方式
在安卓开发中,大部分情况下是不能在子线程直接更新UI的,只能在UI线程更新UI,其根本原因在于加入在一个Activity中有多个线程去更新UI,且没有加锁机制,可能会产生界面混乱的情况,但是如果都加锁 ...
- Android中Activity、Window、ViewRootImpl与子线程更新UI
三者层级关系 1.Window Window是一个抽象类,唯一的实现类是PhoneWindow Window分为三种类型应用Window.子Window.系统Window.子Window无法独立存在必 ...
- Android为什么不能在子线程更新UI
Android为什么不能在子线程更新UI Android为什么不能在子线程更新UI? 如果不做这个校验,是不是我也可以正常在子线程更新UI 但是google为什么要这样去设计呢 ViewRootImp ...
- 面试官问我:Andriod为什么不能在子线程更新UI?
记得看文章三部曲,点赞,评论,转发. 微信搜索[程序员小安]关注还在移动开发领域苟活的大龄程序员,"面试系列"文章将在公众号同步发布. 1.前言 看完<你为什么在现在的公司不 ...
- C#利用Invoke和委托实现子线程更新UI(方式1)
UI布局如下 委托定义如下: public delegate void SetMessageDelegate(string message); From1的代码如下: public partial c ...
- pyqt5 子线程更新ui
from PyQt5.QtCore import * from PyQt5.QtGui import * from PyQt5.QtWidgets import * import time''' 信号 ...
- 子线程更新UI,牵扯activity的启动过程
http://m.blog.csdn.net/article/details?id=43449123 点击打开链接
- 为什么我的子线程更新了 UI 没报错?借此,纠正一些Android 程序员的一个知识误区...
开门见山: 这个误区是:子线程不能更新 UI ,其应该分类讨论,而不是绝对的. 半小时前,我的 XRecyclerView 群里面,一位群友私聊我,问题是: 为什么我的子线程更新了 UI 没报错? 我 ...
最新文章
- SQLServer中使用Split功能分割字符串
- 如何修改Chrome默认字体
- SAP Spartacus 当购物车里添加的商品个数过多后引起的性能问题以及解决方案
- 前端学习(1402):多人管理22验证joi
- 计算机网络原理关于实验中几个指令使用的复习——网络层
- 面试官 | Java 对象不使用时为什么要赋值为 null?
- 【linux指令】dialog实现终端下的GUI-2
- 你的城市撒币了吗?Python 爬取分析全国消费券发放数据
- 高斯过程回归python_scikit-learn中的多输出高斯过程回归
- 北京理工大学语音识别技术.ppt
- 虚拟机vm安装 黑群晖 DS3617xs 6.2
- 【MM32F5270开发板试用】+ TFTLCD IO口方式驱动
- java excel下拉框_Java设置Excel下拉列表
- 在利用DXP2004软件进行PCB设计时——自制元器件封装如何添加网络(布线问题)
- 编写一个JSP页面,利用Scriptlet编写一段计算代码,要求用0做除数,并使用page指令将该错误信息显示在另一个JSP页面上,产生的错误信息为“错误,不能用0做除数.“
- mysql analyze_MySQL中的analyze与optimize
- [机器学习]基于OpenCV实现最简单的数字识别
- 面试3连炮:聊聊ES写入数据的原理?查询数据的原理?倒排索引了解吗?
- 垃圾分类的正确姿势?用 OpenCV 人工智能图像识别技术来进行
- 解决:FTP隔离用户ftp将数据发送到服务器之前不加密或编码,要保护密码和数据数据,请用WEB文件夹(WenDAV)
热门文章
- LAMMPS生成粗糙表面的in文件脚本(可调节微结构高、长和宽)
- 第六章 传统金融行业的区块链战略
- 机器学习笔记 - 探索性数据分析(EDA) 学习进阶
- 怎么p出模糊的照片_ps怎么把模糊的图片变清楚?ps把模糊图片高清化的具体教程...
- 关于树莓派(一):如何让树莓派和笔记本直连SSH
- 如何快速win10下安装win7双系统
- 2021-2027全球及中国数控钻机行业研究及十四五规划分析报告
- 生态 | 国内数据库领域权威学术会议NDBC 2020成功举办,人大金仓受邀参会并发表主题演讲...
- 【财经期刊FM-Radio|2021年01月27日】
- C语言 | 逻辑运算符