Classe CMsgThread

[O recurso associado a esta página, DirectShow, é um recurso herdado. Ele foi substituído por MediaPlayer, IMFMediaEngine e Captura de Áudio/Vídeo na 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 Captura de Áudio/Vídeo no 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.]

A CMsgThread classe é uma classe de thread de trabalho que enfileira solicitações para o thread de enfileiramento para conclusão de forma assíncrona. Para usar essa classe, derive sua classe dela e substitua a função membro CMsgThread::ThreadMessageProc . A função membro ThreadMessageProc executa cada solicitação. Suas funções de cliente e a função membro ThreadMessageProc devem compartilhar uma definição comum dos parâmetros no objeto CMsg .

Um mecanismo negociado informa ao thread de trabalho para sair. Normalmente, esse será um valor do código de mensagem uMsg da classe CMsg .

É uma boa ideia enviar essa mensagem do destruidor da classe derivada e chamar a função membro CMsgThread::WaitForThreadExit antes de concluir a destruição da classe derivada.

Membros de Dados Protegidos Descrição
m_hSem Indica um identificador usado para sinalização.
m_Lock Protege o acesso a listas.
m_lWaiting Indica a espera de um thread gratuito.
m_ThreadQueue Substitui a função membro CMsgThread::GetThreadMsg e bloqueia itens diferentes dessa fila.
Funções de membro Descrição
Cmsgthread Constrói um objeto CMsgThread .
CreateThread Cria um thread.
GetThreadHandle Recupera o identificador de thread.
GetThreadID Recupera o identificador do thread.
Getthreadpriority Recupera a prioridade atual do thread.
PutThreadMsg Enfileira uma solicitação de execução pelo thread de trabalho.
ResumeThread Continua a operação do thread de trabalho.
SetThreadPriority Define a prioridade do thread como um novo valor.
SuspendThread Suspende a operação de um thread em execução.
WaitForThreadExit Bloqueia até que o thread seja encerrado após uma chamada para a função membro CMsgThread::SuspendThread .
Funções de membro substituíveis Descrição
GetThreadMsg Recupera um objeto CMsg na fila que contém uma solicitação.
OnThreadInit Fornece inicialização em um thread.
ThreadMessageProc Processa solicitações. Essa é uma função membro virtual pura.