CMsgThread (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 CMsgThread clase es una clase de subproceso de trabajo que pone en cola las solicitudes al subproceso de puesta en cola para completarse de forma asincrónica. Para usar esta clase, derive la clase de ella e invalide la función miembro CMsgThread::ThreadMessageProc . La función miembro ThreadMessageProc lleva a cabo cada solicitud. Las funciones de cliente y la función miembro ThreadMessageProc deben compartir una definición común de los parámetros en el objeto CMsg .

Un mecanismo negociado indica al subproceso de trabajo que salga. Normalmente, este será un valor del código de mensaje de la clase UMsg de la clase CMsg .

Es recomendable enviar este mensaje desde el destructor de la clase derivada y llamar a la función miembro CMsgThread::WaitForThreadExit antes de completar la destrucción de la clase derivada.

Miembros de datos protegidos Descripción
m_hSem Indica un identificador utilizado para la señalización.
m_Lock Protege el acceso a las listas.
m_lWaiting Indica la espera de un subproceso libre.
m_ThreadQueue Invalida la función miembro CMsgThread::GetThreadMsg y bloquea elementos distintos de esta cola.
Funciones de miembro Descripción
CMsgThread Construye un objeto CMsgThread .
CreateThread Crea un subproceso.
GetThreadHandle Recupera el identificador de subproceso.
GetThreadID Recupera el identificador del subproceso.
GetThreadPriority Recupera la prioridad del subproceso actual.
PutThreadMsg Pone en cola una solicitud de ejecución por el subproceso de trabajo.
ResumeThread Continúa la operación del subproceso de trabajo.
SetThreadPriority Establece la prioridad del subproceso en un nuevo valor.
SuspendThread Suspende la operación de un subproceso en ejecución.
WaitForThreadExit Bloquea hasta que el subproceso se haya salido después de una llamada a la función miembro CMsgThread::SuspendThread .
Funciones miembro reemplazables Descripción
GetThreadMsg Recupera un objeto CMsg en cola que contiene una solicitud.
OnThreadInit Proporciona inicialización en un subproceso.
ThreadMessageProc Procesa las solicitudes. Se trata de una función miembro virtual pura.