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 |
Происходит по истечении интервала таймера. |