tianlang358

当带着问题学习时,学习的目的才会更明确。本篇我们需要解决的问题有以下两个:
1.为什么要在WPF中使用DispatcherTimer?
2.Dispatcher的Interval和priority?
那就让我们进入正题吧。

问题一:为什么要在WPF中使用DispatcherTimer?

DispatcherTimer的工作是由Dispatcher负责调度的,并且Dispatcher在调度时会结合DispatcherTimer的优先级 (DispatcherPriority)来决定是否需要执行DispatcherTimer的任务(Tick)。所以在开发WPF程序时,如果代码中需要用到定时器,或者需要让一个任务在指定优先级的情况下工作,这时我们会考虑选择DispatcherTimer。

问题二:DispatcherTimer的Interval和priority?

priority并未以属性的方式暴露给外界,而是在构造时指定的。如果在构造时没有显式指定,则默认为 DispatcherPriority.Background。在问题一中我们提到过Dispatcher在调度任务时会结合DispatcherTimer的优先级来决定是否让其执行,那么即便当DispatcherTimer的工作时间间隔已到达,但Dispatcher的任务队列中有更高优先级的任务,此时也不会执行DispatcherTimer的任务,换句话说,只能保证在时间间隔(Interval)到达之前不会执行DispatcherTimer的任务,但不能保证时间间隔到达后就一定会执行DispatcherTimer的任务。

posted on 2019-01-19 23:30 天狼358 阅读(...) 评论(...) 编辑 收藏

相关文章:

  • 2021-12-08
  • 2021-09-09
  • 2018-02-08
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
猜你喜欢
  • 2021-12-16
  • 2022-12-23
  • 2022-12-23
  • 2021-08-30
  • 2021-08-04
  • 2021-10-14
  • 2021-12-31
相关资源
相似解决方案