Compartilhar via


Classe CQueue

[O recurso associado a esta página, DirectShow, é um recurso herdado. Foi substituído por MediaPlayer, IMFMediaEngine e Audio/Video Capture in Media Foundation. Esses recursos foram otimizados para Windows 10 e Windows 11. A Microsoft recomenda fortemente que o novo código use MediaPlayer, IMFMediaEngine e Audio/Video Capture in Media Foundation em vez de DirectShow, quando possível. A Microsoft sugere que o código existente que usa as APIs herdadas seja reescrito para usar as novas APIs, se possível.]

O modelo de classe CQueue implementa uma fila simples e dimensionada estaticamente.

Métodos públicos Descrição
CQueue Método de construtor.
~CQueue Método de destruidor.
GetQueueObject Recupera o próximo item da fila.
PutQueueObject Coloca um item na fila.

Comentários

O construtor de classe especifica o tamanho da fila. Use o CQueue::P utQueueObject para colocar um item na fila e o método CQueue::GetQueueObject para remover a fila de um item. Se a fila estiver cheia, o método PutQueueObject será bloqueado até que um item seja descontinuado. Se a fila estiver vazia, o GetQueueObject será bloqueado até que um item seja enfileirado. O parâmetro de modelo especifica o tipo de item. Por exemplo:

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

A classe usa dois semáforos para controlar operações de enfileiramento, um semáforo "get" e um semáforo "put". O método GetQueueObject aguarda o semáforo "get" (usando a função WaitForSingleObject ) e libera o semáforo "put" (usando a função ReleaseSemaphore ). O método PutQueueObject aguarda o semáforo "put" e libera o semáforo "get". A classe usa uma seção crítica para serializar operações de enfileiramento entre vários threads.

Requisitos

Requisito Valor
parâmetro
Wxutil.h (inclua Streams.h)
Biblioteca
Strmbase.lib (builds de varejo);
Strmbasd.lib (builds de depuração)