问题

WPF Dispatcher 提供了UI线程之外的线程异步操作(请求)UI变化。一次Invoke/BeginInvoke调用产生一个DispatcherOperation,将挂在调度队列中,按照优先级被UI执行。

那么问题来了。频繁调用Invoke,比如100+Update/s,将产生极大的性能问题,包括线程上下文切换等。

解决思路

  1. 将多个Update封装到一个DispatcherOperation中;这种情况可有效提升性能,打算性能/效果相互抵制;(这个具体实现可参考网上的一篇文章:使用DispatcherTimer,定期取(Pull)数据,而不是之前的定期推(Push)数据。

  2. 如果可以,尽量使用Binding,将UI更新的任务交给CRL属性的Binding,工作线程直接更新CRL属性即可。

最新文章

  1. oracle add_months函数
  2. error while performing database login with the xxx driver
  3. Linq查询简介
  4. sublime text3侧边栏主题不生效问题解决
  5. HDU3996 Gold Mine(最大权闭合子图)
  6. Intent (一)
  7. hdu4662MU Puzzle
  8. 【宽搜】Vijos P1360 八数码问题
  9. jboss-AS目录结构了解(资料摘取)
  10. 使用netstat检测及监测网络连接
  11. 用Python写WebService接口并且调用
  12. LPC 语言基础
  13. C++编译器将自动为类产生四个缺省的函数
  14. 身份证号校验原理及JavaScript实现
  15. C# 只能输入字母或数字
  16. 使用HttpClient访问url的工具类
  17. react学习之路-配制antd-mobile
  18. Linux指令详解useradd groupadd passwd chpasswd chage 密码修改
  19. UIView剖析之Draw、Size、Layout方法
  20. Java线程和多线程(四)——主线程中的异常

热门文章

  1. myisam崩溃后发生损坏的概率比innodb高的原因
  2. 基于numpy.einsum的张量网络计算
  3. kubernets之机理概览
  4. Jquery实现对Array数组实现类似Linq的Lambda表达式的Where方法筛选
  5. 【Not BUG】微软Winform窗体中设计上的Bug,会导致程序编译失败?不,这不是BUG!
  6. 如何用Python中自带的Pandas和NumPy库进行数据清洗
  7. bootstrap 后端模板
  8. matlab gui matlab gui 鼠标点击显示图像颜色值
  9. Docker容器日志清理方案
  10. STL_map和multimap容器