DispatcherTimer 类
定义
重要
一些信息与预发行产品相关,相应产品在发行之前可能会进行重大修改。 对于此处提供的信息,Microsoft 不作任何明示或暗示的担保。
集成到按指定时间间隔和指定优先级处理的 Dispatcher 队列中的计时器。
public ref class DispatcherTimer
public class DispatcherTimer
type DispatcherTimer = class
Public Class DispatcherTimer
- 继承
-
DispatcherTimer
示例
以下示例创建一个 DispatcherTimer ,用于更新 的内容Label,并在 上CommandManager调用 InvalidateRequerySuggested 方法。
创建 DispatcherTimer 名为 dispatcherTimer
的对象。 事件处理程序 dispatcherTimer_Tick
将添加到 Tick 的 dispatcherTimer
事件中。
Interval使用 TimeSpan 对象将 设置为 1 秒,并启动计时器。
// DispatcherTimer setup
dispatcherTimer = new System.Windows.Threading.DispatcherTimer();
dispatcherTimer.Tick += new EventHandler(dispatcherTimer_Tick);
dispatcherTimer.Interval = TimeSpan.FromSeconds(1);
dispatcherTimer.Start();
' DispatcherTimer setup
dispatcherTimer = New Threading.DispatcherTimer()
AddHandler dispatcherTimer.Tick, AddressOf dispatcherTimer_Tick
dispatcherTimer.Interval = New TimeSpan(0,0,1)
dispatcherTimer.Start()
事件处理程序Tick更新Label显示当前秒的 ,并在 上CommandManager调用 InvalidateRequerySuggested 。
// System.Windows.Threading.DispatcherTimer.Tick handler
//
// Updates the current seconds display and calls
// InvalidateRequerySuggested on the CommandManager to force
// the Command to raise the CanExecuteChanged event.
private void dispatcherTimer_Tick(object sender, EventArgs e)
{
// Updating the Label which displays the current second
lblSeconds.Content = DateTime.Now.Second;
// Forcing the CommandManager to raise the RequerySuggested event
CommandManager.InvalidateRequerySuggested();
}
' System.Windows.Threading.DispatcherTimer.Tick handler
'
' Updates the current seconds display and calls
' InvalidateRequerySuggested on the CommandManager to force
' the Command to raise the CanExecuteChanged event.
Private Sub dispatcherTimer_Tick(ByVal sender As Object, ByVal e As EventArgs)
' Updating the Label which displays the current second
lblSeconds.Content = Date.Now.Second
' Forcing the CommandManager to raise the RequerySuggested event
CommandManager.InvalidateRequerySuggested()
End Sub
注解
DispatcherTimer在每个Dispatcher循环的顶部重新计算 。
不保证计时器在时间间隔发生时准确执行,但保证它们不会在时间间隔发生之前执行。 这是因为 DispatcherTimer 操作与其他操作一样放在队列上 Dispatcher 。 DispatcherTimer执行操作时依赖于队列中的其他作业及其优先级。
System.Timers.Timer如果在 WPF 应用程序中使用 ,请注意,在System.Timers.Timer用户界面 (UI) 线程的线程上运行。 若要访问用户界面 (UI) 线程上的对象,需要使用 或 BeginInvoke将操作Dispatcher发布到用户界面 (UI) 线程Invoke上。 使用 DispatcherTimer 而不是 System.Timers.Timer 使用 的原因是, 在 DispatcherTimer 与 相同的线程 Dispatcher 上运行,并且可以 DispatcherPriority 在 DispatcherTimer上设置 。
DispatcherTimer每当对象的方法绑定到计时器时, 都会使对象保持活动状态。
构造函数
DispatcherTimer() |
初始化 DispatcherTimer 类的新实例。 |
DispatcherTimer(DispatcherPriority) |
初始化按指定优先级处理计时器事件的 DispatcherTimer 类的新实例。 |
DispatcherTimer(DispatcherPriority, Dispatcher) |
初始化 DispatcherTimer 类的新实例,该类按指定优先级在指定的 Dispatcher 上运行。 |
DispatcherTimer(TimeSpan, DispatcherPriority, EventHandler, Dispatcher) |
初始化 DispatcherTimer 类的新实例,该类使用指定的时间间隔、优先级、事件处理程序和 Dispatcher。 |
属性
Dispatcher |
获取与此 Dispatcher 关联的 DispatcherTimer。 |
Interval |
获取或设置计时器刻度之间的时间段。 |
IsEnabled |
获取或设置一个指示是否正在运行计时器的值。 |
Tag |
获取或设置用户定义的数据对象。 |
方法
Equals(Object) |
确定指定对象是否等于当前对象。 (继承自 Object) |
GetHashCode() |
作为默认哈希函数。 (继承自 Object) |
GetType() |
获取当前实例的 Type。 (继承自 Object) |
MemberwiseClone() |
创建当前 Object 的浅表副本。 (继承自 Object) |
Start() |
启动 DispatcherTimer。 |
Stop() |
停止 DispatcherTimer。 |
ToString() |
返回表示当前对象的字符串。 (继承自 Object) |
事件
Tick |
超过计时器间隔时发生。 |