GuiDispatcher
Реализация диспетчера, которая передает действия в поток пользовательского интерфейса WPF с поддержкой пакетной обработки и периодического выполнения.
Наследует: Disposable
Реализует: IDispatcher
Конструкторы
public GuiDispatcher()
guiDispatcher = GuiDispatcher()
Инициализирует новый экземпляр класса GuiDispatcher, используя диспетчер текущего потока.
public GuiDispatcher(Dispatcher dispatcher)
guiDispatcher = GuiDispatcher(dispatcher)
Инициализирует новый экземпляр класса GuiDispatcher.
- dispatcher
- Экземпляр диспетчера потоков пользовательского интерфейса.
Свойства
public Dispatcher Dispatcher { get; }
value = guiDispatcher.Dispatcher
Получил экземпляр диспетчера потоков UI.
public static GuiDispatcher GlobalDispatcher { get; }
value = GuiDispatcher.GlobalDispatcher
Получает глобальный экземпляр синглтона GuiDispatcher.
public TimeSpan Interval { get; set; }
value = guiDispatcher.Interval
guiDispatcher.Interval = value
Получает или устанавливает интервал обработки партии. По умолчанию 1 мс.
public int MaxPeriodicalActionErrors { get; set; }
value = guiDispatcher.MaxPeriodicalActionErrors
guiDispatcher.MaxPeriodicalActionErrors = value
Получает или устанавливает максимальное количество ошибок, допускаемых для периодического действия, прежде чем его удалить.Использовать -1 для отключения лимита.
public int PendingActionsCount { get; }
value = guiDispatcher.PendingActionsCount
Получает количество действий, ожидающих обработки.
Методы
public void AddAction(Action action)
guiDispatcher.AddAction(action)
Ставит действие в очередь на выполнение в потоке пользовательского интерфейса.
- action
- Действие, которое необходимо выполнить.
public IDisposable AddPeriodicalAction(Action action)
result = guiDispatcher.AddPeriodicalAction(action)
Добавляет периодическое действие, которое будет выполняться при каждом тике диспетчера. Возвращает токен, который можно использовать для его удаления.
- action
- Действие, которое необходимо выполнить.
Возвращает: Токен, который можно использовать для удаления действия.
public void AddSyncAction(Action action)
guiDispatcher.AddSyncAction(action)
Выполняет указанное действие синхронно в потоке пользовательского интерфейса.
- action
- Действие, которое необходимо выполнить.
public T AddSyncAction<T>(Func<T> action)
result = guiDispatcher.AddSyncAction(action)
Синхронно выполняет указанную функцию в потоке пользовательского интерфейса и возвращает ее результат.
- action
- Функция для выполнения.
Возвращает: Результат функции.
protected override void DisposeManaged()
guiDispatcher.DisposeManaged()
Освобождает управляемые ресурсы.
public void FlushPendingActions()
guiDispatcher.FlushPendingActions()
Запрашивает немедленную обработку всех действий в очереди.
public static void InitGlobalDispatcher()
GuiDispatcher.InitGlobalDispatcher()
Инициализирует глобальный диспетчер, если он еще не создан.
public IDisposable InvokePeriodically(Action action, TimeSpan interval)
result = guiDispatcher.InvokePeriodically(action, interval)
События
public event Action<Exception> Error
guiDispatcher.Error += handler
Возникает, когда во время выполнения действия возникает ошибка.