话说,Wpf更新界面,只能在界面线程进行更新,但是今天我在用MVVM的时候,居然发现,可以在另外一个线程更新界面元素?

非常奇怪,猜测:难道MVVM框架已经做到了自己会通知到界面元素

尝试如下:这是一个界面鼠标的点击处理时间

 private async void CmdLoginEvent(object obj){{var id= Thread.CurrentThread.ManagedThreadId;int i = 0;}var Rsp = await m_Login_Module.HandleLogin(User, Psw, ServerIp, ServerPort).ConfigureAwait(false);if(false == Rsp.Resule){LoginError = Rsp.ResultCode;}{var id = Thread.CurrentThread.ManagedThreadId;int i = 0;}}

第一个获取当前线程为界面线程的ID,第二个获取当前线程为线程池的ID,两个ID是不一样的。

但是我通过MVVM更新界面元素的值,结果界面没有崩溃,居然正常显示了。这说明MVVM给属性赋值,可以自动切换到界面线程中去。调试截图如下:

第一个线程ID:

第二个线程ID:

界面没有崩溃

Wpf之MVVM线程问题相关推荐

  1. CleanAOP实战系列--WPF中MVVM自动更新

    CleanAOP实战系列--WPF中MVVM自动更新 作者: 立地 邮箱: jarvin_g@126.com QQ: 511363759 CleanAOP介绍:https://github.com/J ...

  2. 【WPF】MVVM模式的3种command

    原文:[WPF]MVVM模式的3种command 1.DelegateCommand 2.RelayCommand 3.AttachbehaviorCommand 因为MVVM模式适合于WPF和SL, ...

  3. 从0到1:使用Caliburn.Micro(WPF和MVVM)开发简单的计算器

    从0到1:使用Caliburn.Micro(WPF和MVVM)开发简单的计算器 这段时间一直在使用Caliburn.Micro这种应用了MVVM模式的WPF框架做开发,是时候总结一下了. Calibu ...

  4. WPF 微信 MVVM

    公司的同事离职了,接下来的日子可能会忙碌,能完善DEMO的时间也会少了,因此,把做的简易DEMO整体先记录一下,等后续不断的完善. 参考两位大神的日志:WEB版微信协议部分功能分析.[完全开源]微信客 ...

  5. WPF 之 调用线程必须为 STA,因为许多 UI 组件都需要

    WPF中,代码中准备控制控件内容时,有时会报错:" 调用线程必须为 STA,因为许多 UI 组件都需要 ". 如在winform下面,使用多线程时,控件的值读取是可以的,但如果要更 ...

  6. WPF框架教程 | 从0到1:使用Caliburn.Micro(WPF和MVVM)开发简单的计算器

    之前时间一直在使用Caliburn.Micro这种应用了MVVM模式的WPF框架做开发,是时候总结一下了. Caliburn.Micro(https://blog.csdn.net/lzuacm/ar ...

  7. WPF中MVVM模式的 Event 处理

    WPF的有些UI元素有Command属性可以直接实现绑定,如Button 但是很多Event的触发如何绑定到ViewModel中的Command呢? 答案就是使用EventTrigger可以实现. 继 ...

  8. WPF Demo15 MVVM

    项目结构如下: <Window x:Class="MVVMDemo.MainWindow"xmlns="http://schemas.microsoft.com/w ...

  9. WPF框架MVVM简单例子

    MVVM是Model-View-ViewModel的缩写形式,它通常被用于WPF或Silverlight开发. Model--可以理解为带有字段,属性的类. View--可以理解为我们所看到的UI. ...

最新文章

  1. iOS应用模块化的思考及落地方案(一)模块的划分及模块化工作流程
  2. 非对称卷积增强CNN特征拟合
  3. 初等数论--整除--整数表示:算数分解定理/素因数分解式/进制表示
  4. oracle中文乱码问题
  5. 前沿观察 | SageDB:一个自学成才的数据库
  6. 用Eclipse给安卓应用进行签名
  7. poj 1236 Network of Schools
  8. git ssh创建分支_【ssh简单版git-server 1】自建git-server
  9. 3项目里面全局用less变量 cli vue_vue-cli3配置使用vw实现移动端适配案例
  10. 常用方法 保证数据长度相同
  11. SpringBoot使用RestTemplate 摘要认证
  12. 在linux上安装svn
  13. 双线性对在密码学中的应用(下)
  14. 技术分享 | MaxScale 实现 MySQL读写分离
  15. imagemagick对于图像处理的一些方式
  16. java考试座位号_怎么用java编写出座位号(1.0)这样格式?
  17. echarts实现全国及各省市地图(内附地图json文件)
  18. 如何使用方位X210来查看海康威视IP摄像头
  19. chmod +x 与chmod 777的区别
  20. qlikview连接数据库

热门文章

  1. 关于我小孩的教育意见
  2. Win2008 R2 VDI动手实验系列之三:远程桌面会话主机配置
  3. 【海洋女神原创】关于installshield“完美卸载”的改进方法
  4. IE8 默认以Web Standards模式显示网页 全面遵循Web标准
  5. Grafana 系统可视化监控
  6. 在系统可编程器件一般使用计算机,eda技术与vhdl复习练习题.docx
  7. java多张图片合成一张_利用溶图技巧把多张图片合成一张奇幻风格图片教程
  8. Maven安装与配制环境【win7/win10】
  9. Vue学习笔记之16-tarbar地开发思路
  10. 阿里云大学python教程下载_阿里大学开放 11 门免费 Python 视频课程