浅谈(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的主要内容,如果未能解决你的问题,请参考以下文章

浅谈WPF中的PreviewTextInput

WPF 的摄像头控件VideoCaptureElement 浅谈

浅谈开发中的MVVM模式及与MVP和MVC的区别

从PRISM开始学WPFWPF?

从PRISM开始学WPFWPF?

浅谈Yolo