相同点:都是定时执行任务的计时器,都可以使用。

  不同点:Timer运行在非UI 线程,如果Timer需要更新UI的时候,需要调用 Invoke或者 BeginInvoke

  DispatcherTimer运行在UI 线程,处理的 Dispatcher 队列中的计时器,可以直接更新UI

  WPF 应用程序启动时具有两个线程:一个用于处理呈现,另一个用于管理 UI。

  呈现线程实际上隐藏在后台运行,而 UI 线程则接收输入、处理事件、绘制屏幕以及运行应用程序代码。 大多数应用程序只使用一个 UI 线程,但在某些情况下,最好使用多个线程。比如大数据量的处理放到后台线程中。

  UI 线程在一个名为 Dispatcher 的对象中将工作项进行排队。Dispatcher 根据优先级选择工作项,并运行每一个工作项直到完成。每个 UI 线程都必须至少有一个 Dispatcher,而每个 Dispatcher 都只能在一个线程中执行工作项。

  要构建响应速度快、且用户友好的应用程序,诀窍是减小工作项,以最大限度地提高 Dispatcher 吞吐量。 这样,工作项将永远不会因为在 Dispatcher 队列中等待处理而失效。 输入与响应之间的任何可察觉的延迟都会使用户不快。

本文来自Bruce Lee 的博客,原文地址:http://www.cnblogs.com/BruceLee521/archive/2011/05/27/2059692.html

转载于:https://www.cnblogs.com/forall/archive/2011/06/24/2088648.html

silverlight、wpf中 dispatcher和timer区别相关推荐

  1. WPF中Auto与*的区别

    原文:WPF中Auto与*的区别 Auto 表示自动适应显示内容的宽度, 如自动适应文本的宽度,文本有多长,控件就显示多长. * 则表示按比例来分配宽度. <ColumnDefinition W ...

  2. Silverlight/WPF中DependencyProperty使用陷阱一枚

    今天有朋友写Silverlight代码遇到一个问题,让我一起看一下.这是他写的一个测试类: class Foo : DependencyObject {public List<int> B ...

  3. WPF 中 TextBlock 和 TextBox 区别

    相同点: 用来显示文本内容: 可以设置特定的高度和宽度或者设置为随文字大小自动更改高度宽度: 都可以设置字体的大小.类型.样式以及位置(左对齐,居中,右对齐): 都可以设置不透明度. 不同点: Tex ...

  4. Silverlight与WPF中BeginInvoke的差异

    Silverlight/WPF中,如果要在多线程中对界面控件值做修改,用Dispatcher对象的BeginInvoke方法无疑是最方便的办法 ,见:温故而知新:WinForm/Silverlight ...

  5. 分享Silverlight/WPF/Windows Phone一周学习导读(06月06日-06月11日)

    Windows 8预览版推出后,Silverlight社区掀起一番新的"Silverlight灭亡"讨论,由于Windows 8预览版中微软重点强调HTML 5和Javascrip ...

  6. WPF中ControlTemplate和DataTemplate的区别

    原文:WPF中ControlTemplate和DataTemplate的区别 下面代码很好的解释了它们之间的区别: <Window x:Class="WPFTestMe.Window1 ...

  7. 在Silverlight 和WPF中使用预编译指令 if..else..endif (译)

    下面的是中文翻译,有些扯淡的话就略过了,想看原文,请到这里 对于预编译指令,作者分成了几篇文章来讲解的.鉴于翻译后的文字较少,我把作者的几篇合为了一篇.下面进入正题. 一.总揽: 想要编写特定平台的代 ...

  8. 在WPF中,x:Name和Name属性之间有什么区别?

    标题说明了一切. 有时似乎Name和x:Name属性是可互换的. 那么,它们之间的明确区别是什么?何时使用一种优于另一种呢? 以错误的方式使用它们是否会对性能或内存产生影响? #1楼 它们不是同一件事 ...

  9. 2021-12-11 WPF面试题 WPF中的xmlns 和xmlns:x有什么区别?

    WPF中的xmlns 和xmlns:x有什么区别? 这两个命名空间都有助于定义/解析 XAML UI 元素. 第一个命名空间是默认命名空间,有助于解析整体 WPF 元素. 第二个命名空间以" ...

最新文章

  1. 在多变环境中长期定位和建图的通用框架
  2. java文件读写不完整_Java读取文件内容不完整
  3. 【计算机视觉】深度相机(六)--Kinect v2.0 手势样本库制作
  4. Codeforces Gym 101630J Journey from Petersburg to Moscow (最短路)
  5. BLE蓝牙和传统蓝牙的区别
  6. 多数据源处理-苞米豆-dynamic
  7. 一步设置Intellij IDEA 热部署处理方法
  8. 计算机考研数据结构教材,2016计算机考研:数据结构参考书及复习重点
  9. VMware卸载不干净导致的重装失败(100%解决问题)
  10. 修改html倒计时,利用自定义HTML小工具实现倒计时
  11. 巅峰战舰服务器维护,《巅峰战舰》8月5日更新公告
  12. 泰勒·考恩的《大停滞?》
  13. ios逆向工具theos安装和使用tweak替换和卸载
  14. 专利与论文-1:为什么要写专利?专利有什么好处?
  15. Fluent计算出现“Floating point exception”时的解决办法
  16. 单用户计算机安全不包括什么,电子科技大20秋《计算机网络安全》在线作业1参考...
  17. 小灰的基金,总算是回血一波。。。
  18. webApi文档好帮手-apidoc使用教程
  19. 移动端车牌识别算法开发与技术应用
  20. 两个瓶子水怎样一样多_幼儿园大班科学领域《水一样多》公开课教案

热门文章

  1. 慕课袁春风老师《计算机系统基础》一二三部分练习题
  2. IDEA配置GitHub报错GitHub Invalid authentication data.404 Not Found-Not Found
  3. service iptables status无法执行,报错
  4. smartgit 授权文件 Free Trial License to Non-Commercial
  5. url 通配符解析成参数
  6. 【微信小程序】登录功能实现及讲解(获取用户唯一标识)
  7. GNU Make chapter 2 —— Makefile 介绍
  8. 从普本到北大:我的跨校跨专业考研经验
  9. Ubuntu下添加新分区并设置挂载点
  10. 使用XML在MSSQL把字串分解