CQueue-Klasse
[Das dieser Seite zugeordnete Feature DirectShow ist ein Legacyfeature. Es wurde von MediaPlayer, IMFMediaEngine und Audio/Video Capture in Media Foundation abgelöst. Diese Features wurden für Windows 10 und Windows 11 optimiert. Microsoft empfiehlt dringend, dass neuer Code mediaPlayer, IMFMediaEngine und Audio/Video Capture in Media Foundation anstelle von DirectShow verwendet, wenn möglich. Microsoft schlägt vor, dass vorhandener Code, der die Legacy-APIs verwendet, so umgeschrieben wird, dass nach Möglichkeit die neuen APIs verwendet werden.]
Die CQueue-Klassenvorlage implementiert eine einfache, statisch dimensionierte Warteschlange.
Öffentliche Methoden | Beschreibung |
---|---|
CQueue | Konstruktormethode. |
~CQueue | Destruktormethode. |
GetQueueObject | Ruft das nächste Element aus der Warteschlange ab. |
PutQueueObject | Fügt ein Element in die Warteschlange ein. |
Der Klassenkonstruktor gibt die Größe der Warteschlange an. Verwenden Sie das CQueue::P utQueueObject , um ein Element in der Warteschlange zu platzieren, und die CQueue::GetQueueObject-Methode , um ein Element aus der Warteschlange zu entfernen. Wenn die Warteschlange voll ist, blockiert die PutQueueObject-Methode , bis ein Element aus der Warteschlange entfernt wird. Wenn die Warteschlange leer ist, blockiert getQueueObject , bis ein Element in die Warteschlange eingereiht wird. Der Vorlagenparameter gibt den Typ des Elements an. Beispiel:
CQueue<int> number_queue;
number_queue.PutQueueObject(7);
Die -Klasse verwendet zwei Semaphore, um Warteschlangenvorgänge zu steuern, ein "get"-Semaphor und ein "put"-Semaphor. Die GetQueueObject-Methode wartet auf den "get"-Semaphor (mit der WaitForSingleObject-Funktion ) und gibt den Put-Semaphor (mithilfe der ReleaseSemaphor-Funktion ) frei. Die PutQueueObject-Methode wartet auf den "put"-Semaphor und gibt den "get"-Semaphor frei. Die -Klasse verwendet einen kritischen Abschnitt, um Warteschlangenvorgänge zwischen mehreren Threads zu serialisieren.
Anforderung | Wert |
---|---|
Header |
|
Bibliothek |
|