CreateDispatcherQueueController, fonction (dispatcherqueue.h)
Crée un DispatcherQueueController. Utilisez dispatcherQueueController créé pour créer et gérer la durée de vie d’un DispatcherQueue afin d’exécuter des tâches en file d’attente dans l’ordre de priorité sur le thread de la file d’attente du répartiteur.
Syntaxe
HRESULT CreateDispatcherQueueController(
[in] DispatcherQueueOptions options,
[out] PDISPATCHERQUEUECONTROLLER *dispatcherQueueController
);
Paramètres
[in] options
Affinité de thread et type d’appartement COM pour le DispatcherQueueController créé. Pour plus d’informations, consultez les remarques.
[out] dispatcherQueueController
Contrôleur de file d’attente du répartiteur créé.
Valeur retournée
S_OK de succès ; sinon un code d’échec.
Remarques
Introduit dans Windows 10, version 1709.
Si options.threadType est DQTYPE_THREAD_DEDICATED, cette fonction crée un thread, l’initialise avec l’appartement COM spécifié et associe un DispatcherQueue à ce thread. La boucle d’événement de file d’attente du répartiteur s’exécute sur le nouveau thread dédié jusqu’à ce que la file d’attente du répartiteur soit explicitement arrêtée. Pour éviter les fuites de thread et de mémoire, appelez DispatcherQueueController.ShutdownQueueAsync lorsque vous avez terminé la file d’attente du répartiteur.
Si options.threadType est DQTYPE_THREAD_CURRENT, un DispatcherQueue est créé et associé au thread actuel. Une erreur se produit s’il existe déjà un DispatcherQueue associé au thread actuel. Le thread actuel doit pomper les messages pour permettre à la file d’attente du répartiteur de distribuer les tâches. Avant la fermeture du thread actuel, il doit appeler DispatcherQueueController.ShutdownQueueAsync et continuer à pomper les messages jusqu’à ce que l’IAsyncAction se termine.
Cet appel ne retourne pas tant que dispatcherQueueController et le nouveau thread (le cas échéant) n’ont pas été créés.
Configuration requise
Plateforme cible | Windows |
En-tête | dispatcherqueue.h |
Bibliothèque | CoreMessaging.lib |
DLL | CoreMessaging.dll |