DispatcherTimer Класс

Определение

Таймер, интегрированный в очередь Dispatcher, обрабатываемый с заданным интервалом времени и заданным приоритетом.

public ref class DispatcherTimer
public class DispatcherTimer
type DispatcherTimer = class
Public Class DispatcherTimer
Наследование
DispatcherTimer

Примеры

В следующем примере создается объект DispatcherTimer , который обновляет содержимое объекта Label и вызывает InvalidateRequerySuggested метод в объекте CommandManager.

DispatcherTimer Создается объект с именемdispatcherTimer. Обработчик событий dispatcherTimer_Tick добавляется в Tick событие dispatcherTimer. Для Interval этого задано значение 1 секунды TimeSpan с помощью объекта, а таймер запускается.

//  DispatcherTimer setup
dispatcherTimer = new System.Windows.Threading.DispatcherTimer();
dispatcherTimer.Tick += new EventHandler(dispatcherTimer_Tick);
dispatcherTimer.Interval = new TimeSpan(0,0,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 объект, который отображает текущую секунду, и вызывается InvalidateRequerySuggested для CommandManager.

//  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 выполнение выполняется в потоке, отличном от потока пользовательского интерфейса. Чтобы получить доступ к объектам в потоке пользовательского интерфейса, необходимо опубликовать операцию в Dispatcher потоке пользовательского интерфейса с помощью Invoke или BeginInvoke. Причины использования в 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

Происходит по истечении интервала таймера.

Применяется к