Данная статья переведена с помощью средств машинного перевода. Чтобы просмотреть ее на английском языке, установите флажок Английский. Вы также можете просматривать английский текст во всплывающем окне, наводя указатель мыши на переведенный текст.
Перевод
Английский

Класс Dispatcher

 

Опубликовано: Октябрь 2016

Предоставляет службы для управления очередью рабочих элементов для потока.

Пространство имен:   System.Windows.Threading
Сборка:  WindowsBase (в WindowsBase.dll)

System.Object
  System.Windows.Threading.Dispatcher

public sealed class Dispatcher

ИмяОписание
System_CAPS_pubpropertySystem_CAPS_staticCurrentDispatcher

Возвращает Dispatcher для потока в данный момент и создает новый Dispatcher Если еще не связаны с потоком.

System_CAPS_pubpropertyHasShutdownFinished

Определяет, является ли Dispatcher завершения завершает работу.

System_CAPS_pubpropertyHasShutdownStarted

Определяет, является ли Dispatcher завершает работу.

System_CAPS_pubpropertyHooks

Получает коллекцию обработчиков, которые предоставляют дополнительную информацию о Dispatcher.

System_CAPS_pubpropertyThread

Получает поток, это Dispatcher связан.

ИмяОписание
System_CAPS_pubmethodBeginInvoke(Delegate, DispatcherPriority, Object[])

Выполняет указанный делегат асинхронно с указанными аргументами, с указанным приоритетом в потоке, Dispatcher был создан.

System_CAPS_pubmethodBeginInvoke(Delegate, Object[])

Выполняет указанный делегат асинхронно с указанными аргументами в потоке, Dispatcher был создан.

System_CAPS_pubmethodBeginInvoke(DispatcherPriority, Delegate)

Выполняет указанный делегат асинхронно в определенной последовательности в потоке Dispatcher связан.

System_CAPS_pubmethodBeginInvoke(DispatcherPriority, Delegate, Object)

Выполняет указанный делегат асинхронно в определенной последовательности и с заданным аргументом в потоке Dispatcher связан.

System_CAPS_pubmethodBeginInvoke(DispatcherPriority, Delegate, Object, Object[])

Выполняет указанный делегат асинхронно в указанный приоритет, используя заданный массив аргументов в потоке Dispatcher связан.

System_CAPS_pubmethodBeginInvokeShutdown(DispatcherPriority)

Инициирует завершение работы Dispatcher асинхронно.

System_CAPS_pubmethodCheckAccess()

Определяет, является ли вызывающий поток потока, связанного с этим Dispatcher.

System_CAPS_pubmethodDisableProcessing()

Отключает обработку Dispatcher очереди.

System_CAPS_pubmethodEquals(Object)

Определяет, равен ли заданный объект текущему объекту.(Наследуется от Object.)

System_CAPS_pubmethodSystem_CAPS_staticExitAllFrames()

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

System_CAPS_pubmethodSystem_CAPS_staticFromThread(Thread)

Возвращает Dispatcher для заданного потока.

System_CAPS_pubmethodGetHashCode()

Служит хэш-функцией по умолчанию.(Наследуется от Object.)

System_CAPS_pubmethodGetType()

Возвращает объект Type для текущего экземпляра.(Наследуется от Object.)

System_CAPS_pubmethodInvoke(Action)

Выполняет указанную Action синхронно в потоке Dispatcher связан.

System_CAPS_pubmethodInvoke(Action, DispatcherPriority)

Выполняет указанную Action синхронно с указанным приоритетом в потоке Dispatcher связан.

System_CAPS_pubmethodInvoke(Action, DispatcherPriority, CancellationToken)

Выполняет указанную Action синхронно с указанным приоритетом в потоке Dispatcher связан.

System_CAPS_pubmethodInvoke(Action, DispatcherPriority, CancellationToken, TimeSpan)

Выполняет указанную Action синхронно с указанным приоритетом в потоке Dispatcher связан.

System_CAPS_pubmethodInvoke(Delegate, DispatcherPriority, Object[])

Синхронно выполняет указанный делегат в определенной последовательности с указанными аргументами в потоке Dispatcher связан.

System_CAPS_pubmethodInvoke(Delegate, Object[])

Синхронно выполняет указанный делегат с указанными аргументами в потоке Dispatcher связан.

System_CAPS_pubmethodInvoke(Delegate, TimeSpan, DispatcherPriority, Object[])

Синхронно выполняет указанный делегат в течение заданного промежутка времени с указанным приоритетом с указанными аргументами в потоке Dispatcher связан.

System_CAPS_pubmethodInvoke(Delegate, TimeSpan, Object[])

Синхронно выполняет указанный делегат в течение заданного промежутка времени с указанным приоритетом с указанными аргументами в потоке Dispatcher связан.

System_CAPS_pubmethodInvoke(DispatcherPriority, Delegate)

Выполняет указанный делегат синхронно с указанным приоритетом в потоке, на котором Dispatcher связан.

System_CAPS_pubmethodInvoke(DispatcherPriority, Delegate, Object)

Выполняет указанный делегат в определенной последовательности с заданным аргументом синхронно в потоке Dispatcher связан.

System_CAPS_pubmethodInvoke(DispatcherPriority, Delegate, Object, Object[])

Синхронно выполняет указанный делегат в определенной последовательности с указанными аргументами в потоке Dispatcher связан.

System_CAPS_pubmethodInvoke(DispatcherPriority, TimeSpan, Delegate)

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

System_CAPS_pubmethodInvoke(DispatcherPriority, TimeSpan, Delegate, Object)

Выполняет указанный делегат в определенной последовательности с заданным аргументом синхронно в потоке Dispatcher связан.

System_CAPS_pubmethodInvoke(DispatcherPriority, TimeSpan, Delegate, Object, Object[])

Синхронно выполняет указанный делегат в определенной последовательности с указанными аргументами в потоке Dispatcher связан.

System_CAPS_pubmethodInvoke<TResult>(Func<TResult>)

Выполняет указанную Func<TResult> синхронно в потоке Dispatcher связан.

System_CAPS_pubmethodInvoke<TResult>(Func<TResult>, DispatcherPriority)

Выполняет указанную Func<TResult> синхронно с указанным приоритетом в потоке Dispatcher связан.

System_CAPS_pubmethodInvoke<TResult>(Func<TResult>, DispatcherPriority, CancellationToken)

Выполняет указанную Func<TResult> синхронно с указанным приоритетом в потоке Dispatcher связан.

System_CAPS_pubmethodInvoke<TResult>(Func<TResult>, DispatcherPriority, CancellationToken, TimeSpan)

Выполняет указанную Func<TResult> синхронно с указанным приоритетом в потоке Dispatcher связан.

System_CAPS_pubmethodInvokeAsync(Action)

Выполняет указанную Action асинхронно в потоке Dispatcher связан.

System_CAPS_pubmethodInvokeAsync(Action, DispatcherPriority)

Выполняет указанную Action асинхронно в определенной последовательности в потоке Dispatcher связан.

System_CAPS_pubmethodInvokeAsync(Action, DispatcherPriority, CancellationToken)

Выполняет указанную Action асинхронно в определенной последовательности в потоке Dispatcher связан.

System_CAPS_pubmethodInvokeAsync<TResult>(Func<TResult>)

Выполняет указанную Func<TResult> асинхронно в потоке Dispatcher связан.

System_CAPS_pubmethodInvokeAsync<TResult>(Func<TResult>, DispatcherPriority)

Выполняет указанную Func<TResult> асинхронно в определенной последовательности в потоке Dispatcher связан.

System_CAPS_pubmethodInvokeAsync<TResult>(Func<TResult>, DispatcherPriority, CancellationToken)

Выполняет указанную Func<TResult> синхронно с указанным приоритетом в потоке Dispatcher связан.

System_CAPS_pubmethodInvokeShutdown()

Запускает процесс завершения работы Dispatcher синхронно.

System_CAPS_pubmethodSystem_CAPS_staticPushFrame(DispatcherFrame)

Входит в цикл выполнения.

System_CAPS_pubmethodSystem_CAPS_staticRun()

Помещает в очередь событий фрейма главного выполнения Dispatcher.

System_CAPS_pubmethodToString()

Возвращает строку, представляющую текущий объект.(Наследуется от Object.)

System_CAPS_pubmethodSystem_CAPS_staticValidatePriority(DispatcherPriority, String)

Определяет, является ли указанный DispatcherPriority является допустимым приоритет.

System_CAPS_pubmethodVerifyAccess()

Определяет, имеет ли вызывающий поток доступ к этому Dispatcher.

System_CAPS_pubmethodSystem_CAPS_staticYield()

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

System_CAPS_pubmethodSystem_CAPS_staticYield(DispatcherPriority)

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

ИмяОписание
System_CAPS_pubeventShutdownFinished

Происходит при Dispatcher завершения завершает работу.

System_CAPS_pubeventShutdownStarted

Происходит при Dispatcher начинает завершение работы.

System_CAPS_pubeventUnhandledException

Происходит, когда исключения потока является исключение и не перехваченные во время выполнения делегата посредством Invoke или BeginInvoke.

System_CAPS_pubeventUnhandledExceptionFilter

Происходит, когда исключения потока является исключение и не перехваченные во время выполнения делегата посредством Invoke или BeginInvoke при работе в рабочей области фильтра.

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

Перегружен. Выполняет указанный делегат асинхронно с обычным приоритетом потока, указанного Dispatcher был создан.(Определено DispatcherExtensions.)

System_CAPS_pubmethodBeginInvoke(Action, DispatcherPriority)

Перегружен. Выполняет указанный делегат асинхронно с указанным приоритетом в потоке, указанный Dispatcher был создан.(Определено DispatcherExtensions.)

System_CAPS_pubmethodInvoke(Action, TimeSpan)

Перегружен. Выполняет указанный делегат синхронно в потоке, указанный Dispatcher был создан и прекращает выполнение по истечении указанного времени ожидания.(Определено DispatcherExtensions.)

System_CAPS_pubmethodInvoke(Action, TimeSpan, DispatcherPriority)

Перегружен. Выполняет указанный делегат синхронно, с заданным приоритетом в потоке, указанный Dispatcher был создан и прекращает выполнение по истечении указанного времени ожидания.(Определено DispatcherExtensions.)

Dispatcher Поддерживает приоритетную очередь рабочих элементов для конкретного потока.

Когда Dispatcher создается в потоке, становится единственным Dispatcher могут быть связаны с потоком, даже если Dispatcher Завершение работы.

При попытке получить CurrentDispatcher для текущего потока и Dispatcher не связан с потоком, Dispatcher будет создан. A Dispatcher также создается при создании DispatcherObject. При создании Dispatcher в фоновом потоке, убедитесь, что завершение работы диспетчера перед выходом из потока.

Если Dispatcher завершает работу, не может быть перезапущена.

В WPF, DispatcherObject может осуществляться только Dispatcher связанного с ним.  Например, фоновый поток не может обновить содержимое Button связанный с Dispatcher на ИП потока. Чтобы фоновый поток для доступа к Content свойство Button, фоновый поток необходимо делегировать работу в Dispatcher связанных с ИП потока. Это достигается с помощью Invoke или BeginInvoke. Invoke является синхронным и BeginInvoke является асинхронным. Добавить операцию в очередь Dispatcher по указанному индексу DispatcherPriority.

Если BeginInvoke будет вызван на Dispatcher завершил работу, свойство status возвращаемого DispatcherOperation имеет значение Aborted.

Все методы в Dispatcher, за исключением класса DisableProcessing, доступны из любого потока.

Объекты, которые являются производными от DispatcherObject поддерживают сходство потоков.

Объекты, которые являются производными от Freezable являются свободнопоточный зафиксированный их. Дополнительные сведения см. в разделе Freezable Общие сведения об объектах.

Приведенный ниже показано, как выполнить операцию на Dispatcher. Полный исходный код этого примера, в разделе Single-Threaded Application with Long-Running Calculation Sample.

Во-первых создается делегат, не принимающий аргументов.

public delegate void NextPrimeDelegate();

Далее, BeginInvoke(DispatcherPriority, Delegate) вызывается. Этот вызов BeginInvoke(DispatcherPriority, Delegate) принимает два параметра: приоритет, который имеет значение DispatcherPriority.Normal, и обратный вызов, который передается через экземпляр делегата NextPrimeDelegate.

startStopButton.Dispatcher.BeginInvoke(
    DispatcherPriority.Normal,
    new NextPrimeDelegate(CheckNextNumber));

.NET Framework
Доступно с 3.0
Silverlight
Доступно с 2.0
Windows Phone Silverlight
Доступно с 7.0

Любые открытые статические элементы ( Предоставлен общий доступ в Visual Basic) этого типа являются потокобезопасными. Потокобезопасность элементов экземпляров не гарантируется.

Вернуться в начало
Показ: