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. |
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.
Requisito | Valore |
---|---|
Intestazione |
|
Libreria |
|