Partager via


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
Wxutil.h (include Streams.h)
Bibliothèque
Strmbase.lib (builds de vente au détail) ;
Strmbasd.lib (builds de débogage)