Поделиться через


DispatcherTimer Класс

Определение

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

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

Примеры

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

Создается DispatcherTimer объект с именем dispatcherTimer . Обработчик dispatcherTimer_Tick событий добавляется к событию TickdispatcherTimer. Для 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 Выполнение операции зависит от других заданий в очереди и их приоритетов.

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

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

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