Функция CreateDispatcherQueueController (dispatcherqueue.h)
Создает DispatcherQueueController. Используйте созданный DispatcherQueueController для создания и управления временем существования DispatcherQueue для выполнения задач в очереди в порядке приоритета в потоке очереди диспетчера.
Синтаксис
HRESULT CreateDispatcherQueueController(
[in] DispatcherQueueOptions options,
[out] PDISPATCHERQUEUECONTROLLER *dispatcherQueueController
);
Параметры
[in] options
Сходство потоков и тип com-объекта для созданного DispatcherQueueController. Дополнительные сведения см. в примечаниях.
[out] dispatcherQueueController
Созданный контроллер очереди диспетчера.
Возвращаемое значение
S_OK для успеха; в противном случае — код сбоя.
Комментарии
Появилось в Windows 10 версии 1709.
Если параметр options.threadTypeDQTYPE_THREAD_DEDICATED, то эта функция создает поток, инициализирует его указанным объектом COM и связывает DispatcherQueue с этим потоком. Цикл событий очереди диспетчера выполняется в новом выделенном потоке, пока очередь диспетчера не завершится явным образом. Чтобы избежать утечки потоков и памяти, вызовите DispatcherQueueController.ShutdownQueueAsync после завершения работы с очередью диспетчера.
Если параметр options.threadTypeDQTYPE_THREAD_CURRENT, создается dispatcherQueue и связывается с текущим потоком. Если с текущим потоком уже есть DispatcherQueue , возникает ошибка. Текущий поток должен перекачивать сообщения, чтобы позволить очереди диспетчера отправлять задачи. Перед завершением текущего потока он должен вызвать DispatcherQueueController.ShutdownQueueAsync и продолжать перекачку сообщений до завершения действия IAsyncAction .
Этот вызов не возвращается до тех пор, пока не будут созданы DispatcherQueueController и новый поток (если таковые имеются).
Требования
Целевая платформа | Windows |
Header | dispatcherqueue.h |
Библиотека | CoreMessaging.lib |
DLL | CoreMessaging.dll |