浅谈(WPF)DispatcherTimer
Posted tianlang358
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了浅谈(WPF)DispatcherTimer相关的知识,希望对你有一定的参考价值。
当带着问题学习时,学习的目的才会更明确。本篇我们需要解决的问题有以下两个:
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的任务。
以上是关于浅谈(WPF)DispatcherTimer的主要内容,如果未能解决你的问题,请参考以下文章