Leer en inglés

Compartir a través de


CQueue (clase)

[La característica asociada a esta página, DirectShow, es una característica heredada. Se ha reemplazado por MediaPlayer, IMFMediaEngine y Captura de audio/vídeo en Media Foundation. Esas características se han optimizado para Windows 10 y Windows 11. Microsoft recomienda encarecidamente que el nuevo código use MediaPlayer, IMFMediaEngine y Audio/Video Capture en Media Foundation en lugar de DirectShow, siempre que sea posible. Microsoft sugiere que el código existente que usa las API heredadas se reescriba para usar las nuevas API si es posible.

La plantilla de clase CQueue implementa una cola sencilla de tamaño estático.

Métodos públicos Descripción
CQueue Método constructor.
~CQueue Método de destructor.
GetQueueObject Recupera el siguiente elemento de la cola.
PutQueueObject Coloca un elemento en la cola.

Observaciones

El constructor de clase especifica el tamaño de la cola. Use CQueue::P utQueueObject para colocar un elemento en la cola y el método CQueue::GetQueueObject para quitar la cola de un elemento. Si la cola está llena, el método PutQueueObject se bloquea hasta que se quita un elemento. Si la cola está vacía, GetQueueObject se bloquea hasta que se pone en cola un elemento. El parámetro de plantilla especifica el tipo de elemento. Por ejemplo:

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

La clase usa dos semáforos para controlar las operaciones de puesta en cola, un semáforo "get" y un semáforo "put". El método GetQueueObject espera en el semáforo "get" (mediante la función WaitForSingleObject ) y libera el semáforo "put" (mediante la función ReleaseSemaphore ). El método PutQueueObject espera el semáforo "put" y libera el semáforo "get". La clase usa una sección crítica para serializar las operaciones de puesta en cola entre varios subprocesos.

Requisitos

Requisito Value
Encabezado
Wxutil.h (include Streams.h)
Biblioteca
Strmbase.lib (compilaciones comerciales);
Strmbasd.lib (compilaciones de depuración)