Fonction RtwqAllocateSerialWorkQueue (rtworkq.h)
Crée une file d’attente de travail virtuelle au-dessus d’une autre file d’attente de travail qui est garantie pour sérialiser les éléments de travail. La file d’attente de travail série encapsule une file d’attente de travail multithread existante. La file d’attente de travail série applique un ordre d’exécution premier entré, premier sorti (FIFO).
Syntaxe
HRESULT RtwqAllocateSerialWorkQueue(
[in] DWORD workQueueIdIn,
[out] DWORD *workQueueIdOut
);
Paramètres
[in] workQueueIdIn
Identificateur d’une file d’attente de travail existante. Il doit s’agir d’une file d’attente multithread ou d’une autre file d’attente de travail série. L’un des éléments suivants peut être utilisé :
- File d’attente de travail par défaut (RTWQ_STANDARD_WORKQUEUE). Voir RTWQ_WORKQUEUE_TYPE.
- File d’attente multithread de la plateforme (RTWQ_MULTITHREADED_WORKQUEUE). Voir RTWQ_WORKQUEUE_TYPE.
- File d’attente multithread retournée par la fonction RtwqLockSharedWorkQueue .
- File d’attente série créée par la fonction RtwqAllocateSerialWorkQueue .
[out] workQueueIdOut
Reçoit un identificateur pour la nouvelle file d’attente de travail série. Utilisez cet identificateur lors de la mise en file d’attente d’éléments de travail.
Valeur retournée
Cette fonction peut retourner l’une de ces valeurs.
Code de retour | Description |
---|---|
|
La fonction a réussi. |
|
L’application a dépassé le nombre maximal de files d’attente de travail. |
|
L’application n’a pas appelé RtwqStartup, ou l’application a déjà appelé RtwqShutdown. |
Remarques
Lorsque vous avez terminé d’utiliser la file d’attente de travail, appelez RtwqUnlockWorkQueue.
Les files d’attente multithread utilisent un pool de threads, ce qui peut réduire le nombre total de threads dans le pipeline. Toutefois, ils ne sérialisent pas les éléments de travail. Une file d’attente de travail série permet à l’application d’obtenir les avantages du pool de threads, sans avoir besoin d’effectuer une sérialisation manuelle de ses propres éléments de travail.
Configuration requise
Condition requise | Valeur |
---|---|
Client minimal pris en charge | Windows 8.1 [applications de bureau uniquement] |
Serveur minimal pris en charge | Windows Server 2012 R2 [applications de bureau uniquement] |
Plateforme cible | Windows |
En-tête | rtworkq.h |
Bibliothèque | Rtworkq.lib |
DLL | RTWorkQ.dll |