DispatcherTimer 类

定义

集成到按指定时间间隔和指定优先级处理的 Dispatcher 队列中的计时器。

public class DispatcherTimer
继承
DispatcherTimer

示例

以下示例创建一个 DispatcherTimer ,用于更新 的内容Label,并在 上CommandManager调用 InvalidateRequerySuggested 方法。

创建 DispatcherTimer 名为 dispatcherTimer 的对象。 事件处理程序 dispatcherTimer_Tick 将添加到 TickdispatcherTimer事件中。 Interval使用 TimeSpan 对象将 设置为 1 秒,并启动计时器。

//  DispatcherTimer setup
dispatcherTimer = new System.Windows.Threading.DispatcherTimer();
dispatcherTimer.Tick += new EventHandler(dispatcherTimer_Tick);
dispatcherTimer.Interval = TimeSpan.FromSeconds(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();
}

注解

DispatcherTimer在每个Dispatcher循环的顶部重新计算 。

不保证计时器在时间间隔发生时准确执行,但保证它们不会在时间间隔发生之前执行。 这是因为 DispatcherTimer 操作与其他操作一样放在队列上 DispatcherDispatcherTimer执行操作时依赖于队列中的其他作业及其优先级。

System.Timers.Timer如果在 WPF 应用程序中使用 ,请注意,在System.Timers.Timer用户界面 (UI) 线程的线程上运行。 若要访问用户界面 (UI) 线程上的对象,需要使用 或 BeginInvoke将操作Dispatcher发布到用户界面 (UI) 线程Invoke上。 使用 DispatcherTimer 而不是 System.Timers.Timer 使用 的原因是, 在 DispatcherTimer 与 相同的线程 Dispatcher 上运行,并且可以 DispatcherPriorityDispatcherTimer上设置 。

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

超过计时器间隔时发生。

适用于

产品 版本
.NET Framework 3.0, 3.5, 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1
Windows Desktop 3.0, 3.1, 5, 6, 7, 8, 9