CQueue, classe
[La fonctionnalité associée à cette page, DirectShow, est une fonctionnalité héritée. Il a été remplacé par MediaPlayer, IMFMediaEngine et Audio/Video Capture in Media Foundation. Ces fonctionnalités ont été optimisées pour Windows 10 et Windows 11. Microsoft recommande vivement que le nouveau code utilise MediaPlayer, IMFMediaEngine et Audio/Video Capture dans Media Foundation au lieu de DirectShow, si possible. Microsoft suggère que le code existant qui utilise les API héritées soit réécrit pour utiliser les nouvelles API si possible.]
Le modèle de classe CQueue implémente une file d’attente simple et de taille statique.
Méthodes publiques | Description |
---|---|
CQueue | Méthode du constructeur. |
~CQueue | Méthode de destructeur. |
GetQueueObject | Récupère l’élément suivant de la file d’attente. |
PutQueueObject | Place un élément dans la file d’attente. |
Notes
Le constructeur de classe spécifie la taille de la file d’attente. Utilisez CQueue::P utQueueObject pour placer un élément dans la file d’attente, et la méthode CQueue::GetQueueObject pour mettre un élément en file d’attente. Si la file d’attente est pleine, la méthode PutQueueObject se bloque jusqu’à ce qu’un élément soit mis en file d’attente. Si la file d’attente est vide, getQueueObject se bloque jusqu’à ce qu’un élément soit mis en file d’attente. Le paramètre template spécifie le type d’élément. Par exemple :
CQueue<int> number_queue;
number_queue.PutQueueObject(7);
La classe utilise deux sémaphores pour contrôler les opérations de mise en file d’attente, un sémaphore « get » et un sémaphore « put ». La méthode GetQueueObject attend le sémaphore « get » (à l’aide de la fonction WaitForSingleObject ) et libère le sémaphore « put » (à l’aide de la fonction ReleaseSemaphore ). La méthode PutQueueObject attend le sémaphore « put » et libère le sémaphore « get ». La classe utilise une section critique pour sérialiser les opérations de mise en file d’attente entre plusieurs threads.
Configuration requise
Condition requise | Valeur |
---|---|
En-tête |
|
Bibliothèque |
|