码迷,mamicode.com
首页 > Windows程序 > 详细

浅谈(WPF)DispatcherTimer

时间:2019-01-20 00:09:18      阅读:190      评论:0      收藏:0      [点我收藏+]

标签:情况下   不能   间隔   决定   情况   size   nbsp   ack   进入   

当带着问题学习时,学习的目的才会更明确。本篇我们需要解决的问题有以下两个:
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

标签:情况下   不能   间隔   决定   情况   size   nbsp   ack   进入   

原文地址:https://www.cnblogs.com/tianlang358/p/10293726.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!