Dispatcher Класс
Важно!
Некоторые сведения относятся к предварительной версии продукта, в которую до выпуска могут быть внесены существенные изменения. Майкрософт не предоставляет никаких гарантий, явных или подразумеваемых, относительно приведенных здесь сведений.
Предоставляет службы для управления очередью рабочих элементов для потока.
В этой статье
public ref class Dispatcher sealed
public sealed class Dispatcher
type Dispatcher = class
Public NotInheritable Class Dispatcher
- Наследование
-
Dispatcher
В следующем примере показано, как поместить операцию в .Dispatcher Полный исходный код этого примера см. в разделе "Однопоточное приложение" с примером вычисления Long-Running.
Сначала создается делегат, который не принимает аргументы.
public delegate void NextPrimeDelegate();
Public Delegate Sub NextPrimeDelegate()
BeginInvoke(DispatcherPriority, Delegate) Затем вызывается. Этот вызов BeginInvoke(DispatcherPriority, Delegate) принимает два параметра: приоритет, которому присвоено значение DispatcherPriority.Normal, и обратный вызов, передаваемый через экземпляр делегата NextPrimeDelegate
.
startStopButton.Dispatcher.BeginInvoke(
DispatcherPriority.Normal,
new NextPrimeDelegate(CheckNextNumber));
startStopButton.Dispatcher.BeginInvoke(DispatcherPriority.Normal, New NextPrimeDelegate(AddressOf CheckNextNumber))
Сохраняет Dispatcher приоритетную очередь рабочих элементов для определенного потока.
Dispatcher При создании в потоке он становится единственнымDispatcher, который может быть связан с потоком, даже если выполняется Dispatcher завершение работы.
Если вы попытаетесь получить CurrentDispatcher текущий поток и не Dispatcher связан с потоком, будет создан объект Dispatcher . А Dispatcher также создается при создании DispatcherObject. Если вы создаете поток Dispatcher в фоновом режиме, перед выходом из потока не забудьте завершить работу диспетчера.
Если выполняется Dispatcher завершение работы, его нельзя перезапустить.
В WPF DispatcherObject доступ к нему может получить Dispatcher только связанный. Например, фоновый поток не может обновить содержимое связанного Button с Dispatcher ним потока пользовательского интерфейса. Для доступа Content к свойству фонового Buttonпотока фоновый поток должен делегировать работу связанному Dispatcher с потоком пользовательского интерфейса. Это достигается с помощью либоInvoke.BeginInvoke Invoke является синхронным и BeginInvoke является асинхронным. Операция добавляется в очередь указанного Dispatcher объекта DispatcherPriority.
Если BeginInvoke вызывается для Dispatcher завершения работы, свойству Abortedсостояния возвращаемого DispatcherOperation значения присваивается значение .
Все методы в Dispatcher, за исключением DisableProcessing, являются свободными потоками.
Объекты, производные от DispatcherObject сходства потоков.
Объекты, производные от Freezable свободного потока, когда они заморожены. Дополнительные сведения см. в разделе Общие сведения об объектах класса Freezable.
Current |
Возвращает Dispatcher для выполняющегося в данный момент потока и создает новый объект Dispatcher, если с потоком еще не связан диспетчер. |
Has |
Определяет, завершил ли объект Dispatcher процесс остановки. |
Has |
Определяет, находится ли объект Dispatcher в процессе остановки. |
Hooks |
Возвращает коллекцию ловушек, предоставляющих дополнительную информацию о Dispatcher. |
Thread |
Возвращает поток, с которым связан данный Dispatcher. |
Begin |
Выполняет указанный делегат асинхронно, с заданными приоритетом и аргументами, в потоке, в котором был создан объект Dispatcher. |
Begin |
Выполняет указанный делегат асинхронно с указанными аргументами в потоке, в котором был создан объект Dispatcher. |
Begin |
Выполняет указанный делегат асинхронно, с заданным приоритетом, в потоке, с которым связан Dispatcher. |
Begin |
Выполняет указанный делегат асинхронно, с заданными приоритетом и аргументом, в потоке, с которым связан Dispatcher. |
Begin |
Выполняет указанный делегат асинхронно, с заданными приоритетом и массивом аргументов, в потоке, с которым связан Dispatcher. |
Begin |
Инициализирует асинхронную остановку Dispatcher. |
Check |
Определяет, связан ли вызывающий поток с данным Dispatcher. |
Disable |
Отменяет обработку очереди Dispatcher. |
Equals(Object) |
Определяет, равен ли указанный объект текущему объекту. (Унаследовано от Object) |
Exit |
Запрашивает выход для всех фреймов, включая вложенные. |
From |
Возвращает Dispatcher для заданного потока. |
Get |
Служит хэш-функцией по умолчанию. (Унаследовано от Object) |
Get |
Возвращает объект Type для текущего экземпляра. (Унаследовано от Object) |
Invoke(Action) |
Выполняет заданный объект Action синхронно в потоке, с которым связан Dispatcher. |
Invoke(Action, Dispatcher |
Выполняет указанный объект Action синхронно с заданным приоритетом в потоке, с которым связан Dispatcher. |
Invoke(Action, Dispatcher |
Выполняет указанный объект Action синхронно с заданным приоритетом в потоке, с которым связан Dispatcher. |
Invoke(Action, Dispatcher |
Выполняет указанный объект Action синхронно с заданным приоритетом в потоке, с которым связан Dispatcher. |
Invoke(Delegate, Dispatcher |
Выполняет указанный делегат синхронно, с заданными приоритетом и аргументами, в потоке, с которым связан Dispatcher. |
Invoke(Delegate, Object[]) |
Выполняет указанный делегат синхронно с заданными аргументами в потоке, с которым связан объект Dispatcher. |
Invoke(Delegate, Time |
Выполняет указанный делегат в течение заданного промежутка времени, синхронно, с заданными приоритетом и аргументами, в потоке, с которым связан Dispatcher. |
Invoke(Delegate, Time |
Выполняет указанный делегат в течение заданного промежутка времени, синхронно, с заданными приоритетом и аргументами, в потоке, с которым связан Dispatcher. |
Invoke(Dispatcher |
Выполняет указанный делегат синхронно по указанному приоритету в потоке, Dispatcher с которым связан этот делегат. |
Invoke(Dispatcher |
Выполняет указанный делегат синхронно, с заданными приоритетом и аргументом, в потоке, с которым связан Dispatcher. |
Invoke(Dispatcher |
Выполняет указанный делегат синхронно, с заданными приоритетом и аргументами, в потоке, с которым связан Dispatcher. |
Invoke(Dispatcher |
Выполняет указанный делегат асинхронно, с заданными приоритетом и значением таймаута, в потоке, в котором был создан объект Dispatcher. |
Invoke(Dispatcher |
Выполняет указанный делегат синхронно, с заданными приоритетом и аргументом, в потоке, с которым связан Dispatcher. |
Invoke(Dispatcher |
Выполняет указанный делегат синхронно, с заданными приоритетом и аргументами, в потоке, с которым связан Dispatcher. |
Invoke<TResult>(Func<TResult>) |
Выполняет заданный объект Func<TResult> синхронно в потоке, с которым связан Dispatcher. |
Invoke<TResult>(Func<TResult>, Dispatcher |
Выполняет указанный объект Func<TResult> синхронно с заданным приоритетом в потоке, с которым связан Dispatcher. |
Invoke<TResult>(Func<TResult>, Dispatcher |
Выполняет указанный объект Func<TResult> синхронно с заданным приоритетом в потоке, с которым связан Dispatcher. |
Invoke<TResult>(Func<TResult>, Dispatcher |
Выполняет указанный объект Func<TResult> синхронно с заданным приоритетом в потоке, с которым связан Dispatcher. |
Invoke |
Выполняет заданный объект Action асинхронно в потоке, с которым связан Dispatcher. |
Invoke |
Выполняет указанный объект Action асинхронно с заданным приоритетом в потоке, с которым связан Dispatcher. |
Invoke |
Выполняет указанный объект Action асинхронно с заданным приоритетом в потоке, с которым связан Dispatcher. |
Invoke |
Выполняет заданный объект Func<TResult> асинхронно в потоке, с которым связан Dispatcher. |
Invoke |
Выполняет указанный объект Func<TResult> асинхронно с заданным приоритетом в потоке, с которым связан Dispatcher. |
Invoke |
Выполняет указанный объект Func<TResult> асинхронно с заданным приоритетом в потоке, с которым связан Dispatcher. |
Invoke |
Инициирует синхронный процесс остановки Dispatcher. |
Memberwise |
Создает неполную копию текущего объекта Object. (Унаследовано от Object) |
Push |
Входит в цикл выполнения. |
Run() |
Помещает главный фрейм выполнения в очередь событий Dispatcher. |
To |
Возвращает строку, представляющую текущий объект. (Унаследовано от Object) |
Validate |
Определяет, является ли DispatcherPriority допустимым приоритетом. |
Verify |
Определяет, имеет ли вызывающий поток доступ к этому Dispatcher. |
Yield() |
Создает объект типа awaitable, который асинхронно направляет элемент управления обратно текущему диспетчеру и предоставляет диспетчеру возможность обработки других событий. |
Yield(Dispatcher |
Создает объект типа awaitable, который асинхронно направляет элемент управления обратно текущему диспетчеру и предоставляет диспетчеру возможность обработки других событий. Работа, происходящая, когда элемент управления возвращается к коду, ожидающему результата этого метода, запланирован с указанным приоритетом. |
Shutdown |
Происходит после остановки Dispatcher. |
Shutdown |
Происходит, когда начинается процесс остановки Dispatcher. |
Unhandled |
Происходит, когда выбрасывается и никаким кодом не перехватывается исключение потока при выполнении делегата с помощью Invoke или BeginInvoke. |
Unhandled |
Происходит, когда выбрасывается и никаким кодом не перехватывается исключение потока при выполнении делегата с помощью Invoke или BeginInvoke на стадии фильтра. |
Begin |
Выполняет указанный делегат асинхронно с обычным приоритетом, в потоке, в котором был создан заданный объект Dispatcher. |
Begin |
Выполняет указанный делегат асинхронно с заданным приоритетом, в потоке, в котором был создан заданный объект Dispatcher. |
Invoke(Dispatcher, Action) |
Выполняет указанный делегат синхронно с обычным приоритетом, в потоке, в котором был создан заданный объект Dispatcher. |
Invoke(Dispatcher, Action, Time |
Выполняет указанный делегат синхронно, в потоке, в котором был создан объект Dispatcher, и прекращает выполнение по истечении указанного времени ожидания. |
Invoke(Dispatcher, Action, Time |
Выполняет указанный делегат синхронно, с заданным приоритетом, в потоке, в котором был создан объект Dispatcher, и прекращает выполнение по истечении указанного времени ожидания. |
Invoke(Dispatcher, Action, Dispatcher |
Выполняет указанный делегат синхронно с заданным приоритетом, в потоке, в котором был создан заданный объект Dispatcher. |