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 = 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 объект, который отображает текущую секунду, и вызывается 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 Когда операция выполняется, зависит от других заданий в очереди и их приоритетов.

Если в приложении WPF используется System.Timers.Timer, следует отметить, что System.Timers.Timer выполняется в другом потоке, отличном от потока пользовательского интерфейса. Чтобы получить доступ к объектам в потоке пользовательского интерфейса, необходимо опубликовать операцию в Dispatcher потоке InvokeBeginInvokeпользовательского интерфейса (UI). Причины использования в DispatcherTimer отличие от того System.Timers.Timer , что выполняется в том же потоке, что DispatcherTimerDispatcher и может DispatcherPriority быть задано DispatcherTimerв .

Объект DispatcherTimer будет оставаться в живых, когда методы объекта привязаны к таймеру.

Конструкторы

Имя Описание
DispatcherTimer()

Инициализирует новый экземпляр класса DispatcherTimer.

DispatcherTimer(DispatcherPriority, Dispatcher)

Инициализирует новый экземпляр DispatcherTimer класса, который выполняется по указанному Dispatcher приоритету.

DispatcherTimer(DispatcherPriority)

Инициализирует новый экземпляр DispatcherTimer класса, который обрабатывает события таймера по указанному приоритету.

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

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

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