Classe CQueue

[La funzionalità associata a questa pagina, DirectShow, è una funzionalità legacy. È stata sostituita da MediaPlayer, FMMediaEngine e Audio/Video Capture in Media Foundation. Queste funzionalità sono state ottimizzate per Windows 10 e Windows 11. Microsoft consiglia vivamente che il nuovo codice usi MediaPlayer, FMMediaEngine e Audio/Video Capture in Media Foundation anziché DirectShow, quando possibile. Microsoft suggerisce che il codice esistente che usa le API legacy venga riscritto per usare le nuove API, se possibile.

Il modello di classe CQueue implementa una coda semplice e con dimensioni statiche.

Metodi pubblici Descrizione
CQueue Metodo costruttore.
~CQueue Metodo distruttore.
GetQueueObject Recupera l'elemento successivo dalla coda.
PutQueueObject Inserisce un elemento nella coda.

Commenti

Il costruttore della classe specifica le dimensioni della coda. Utilizzare il metodo CQueue::P utQueueObject per inserire un elemento nella coda e il metodo CQueue::GetQueueObject per dequeues un elemento. Se la coda è completa, il metodo PutQueueObject blocca fino a quando non viene dequeued un elemento. Se la coda è vuota, GetQueueObject blocca finché non viene accodato un elemento. Il parametro modello specifica il tipo di elemento. Ad esempio:

CQueue<int> number_queue;
number_queue.PutQueueObject(7);

La classe usa due semafori per controllare le operazioni di accodamento, un semaforo "get" e un semaforo "put". Il metodo GetQueueObject attende il semaforo "get" (usando la funzione WaitForSingleObject ) e rilascia il semaforo "put" (usando la funzione ReleaseSemaphore ). Il metodo PutQueueObject attende il semaforo "put" e rilascia il semaforo "get". La classe usa una sezione critica per serializzare le operazioni di accodamento tra più thread.

Requisiti

Requisito Valore
Intestazione
Wxutil.h (include Streams.h)
Libreria
Strmbase.lib (build al dettaglio);
Strmbasd.lib (build di debug)