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


DispatcherQueueTimer Класс

Определение

Периодически выполняет задачу в потоке DispatcherQueue по истечении интервала времени.

public ref class DispatcherQueueTimer sealed
/// [Windows.Foundation.Metadata.ContractVersion(Windows.Foundation.UniversalApiContract, 327680)]
/// [Windows.Foundation.Metadata.MarshalingBehavior(Windows.Foundation.Metadata.MarshalingType.Agile)]
/// [Windows.Foundation.Metadata.Threading(Windows.Foundation.Metadata.ThreadingModel.Both)]
class DispatcherQueueTimer final
/// [Windows.Foundation.Metadata.ContractVersion(Windows.Foundation.UniversalApiContract, 327680)]
/// [Windows.Foundation.Metadata.MarshalingBehavior(Windows.Foundation.Metadata.MarshalingType.Agile)]
class DispatcherQueueTimer final
[Windows.Foundation.Metadata.ContractVersion(typeof(Windows.Foundation.UniversalApiContract), 327680)]
[Windows.Foundation.Metadata.MarshalingBehavior(Windows.Foundation.Metadata.MarshalingType.Agile)]
[Windows.Foundation.Metadata.Threading(Windows.Foundation.Metadata.ThreadingModel.Both)]
public sealed class DispatcherQueueTimer
[Windows.Foundation.Metadata.ContractVersion(typeof(Windows.Foundation.UniversalApiContract), 327680)]
[Windows.Foundation.Metadata.MarshalingBehavior(Windows.Foundation.Metadata.MarshalingType.Agile)]
public sealed class DispatcherQueueTimer
Public NotInheritable Class DispatcherQueueTimer
Наследование
Object Platform::Object IInspectable DispatcherQueueTimer
Атрибуты

Требования к Windows

Семейство устройств
Windows 10 Fall Creators Update (появилось в 10.0.16299.0)
API contract
Windows.Foundation.UniversalApiContract (появилось в v5.0)

Примеры

public void ConfigureRepeatingTimer()
{
    _queueController = DispatcherQueueController.CreateOnDedicatedThread();
    _queue = _queueController.DispatcherQueue;

    _repeatingTimer = _queue.CreateTimer ();
    _repeatingTimer.Interval = TimeSpan.FromSeconds(5);

    // The tick handler will be invoked repeatedly after every 5
    // seconds on the dedicated thread.
    _repeatingTimer.Tick += (s, e) =>
    {
        DoWork();
    };

    // Start the Timer
    _repeatingTimer.Start();
}

private DispatcherQueue _queue;
private DispatcherQueueController _queueController;
private DispatcherQueueTimer _repeatingTimer;

Комментарии

Система гарантирует вызов обработчика событий только по истечении указанного срока. Однако при наличии других ожидающих рабочих элементов в очереди может возникнуть некоторая задержка перед вызовом обработчика тактов.

Задачи таймера выполняются с приоритетом ниже, чем простой.

Таймеры не сохраняют цикл событий DispatcherQueue в активном состоянии. Таймеры, созданные после остановки цикла событий DispatcherQueue , не будут обрабатываться.

Свойства

Interval

Возвращает и задает интервал для таймера.

IsRepeating

Указывает, повторяется ли таймер.

IsRunning

Указывает, работает ли таймер в данный момент.

Методы

Start()

Запускает таймер.

Stop()

Останавливает таймер.

События

Tick

Событие, которое срабатывает по истечении интервала таймера.

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