CMsgThread, classe

[La fonctionnalité associée à cette page, DirectShow, est une fonctionnalité héritée. Il a été remplacé par MediaPlayer, IMFMediaEngine et Audio/Video Capture in Media Foundation. Ces fonctionnalités ont été optimisées pour Windows 10 et Windows 11. Microsoft recommande vivement que le nouveau code utilise MediaPlayer, IMFMediaEngine et Audio/Video Capture dans Media Foundation au lieu de DirectShow, si possible. Microsoft suggère que le code existant qui utilise les API héritées soit réécrit pour utiliser les nouvelles API si possible.]

La CMsgThread classe est une classe worker-thread qui met en file d’attente les demandes au thread de mise en file d’attente pour l’achèvement de façon asynchrone. Pour utiliser cette classe, dérivez votre classe de celle-ci et remplacez la fonction membre CMsgThread::ThreadMessageProc . La fonction membre ThreadMessageProc exécute chaque requête. Vos fonctions clientes et la fonction membre ThreadMessageProc doivent partager une définition commune des paramètres dans l’objet CMsg .

Un mécanisme négocié indique au thread de travail de quitter. En règle générale, il s’agit d’une valeur du code de message uMsg de la classe CMsg.

Il est judicieux d’envoyer ce message à partir du destructeur de votre classe dérivée et d’appeler la fonction membre CMsgThread::WaitForThreadExit avant de terminer la destruction de la classe dérivée.

Membres de données protégés Description
m_hSem Indique un handle utilisé pour la signalisation.
m_Lock Protège l’accès aux listes.
m_lWaiting Indique l’attente d’un thread libre.
m_ThreadQueue Remplace la fonction membre CMsgThread::GetThreadMsg et bloque d’autres éléments que cette file d’attente.
Fonctions de membre Description
CMsgThread Construit un objet CMsgThread .
CreateThread Crée un thread.
GetThreadHandle Récupère le handle de thread.
GetThreadID Récupère l’identificateur du thread.
GetThreadPriority Récupère la priorité du thread actuel.
PutThreadMsg Met en file d’attente une demande d’exécution par le thread de travail.
ResumeThread Continue l’opération du thread de travail.
SetThreadPriority Définit la priorité du thread sur une nouvelle valeur.
SuspendThread Interrompt l’opération d’un thread en cours d’exécution.
WaitForThreadExit Se bloque jusqu’à ce que le thread se soit arrêté après un appel à la fonction membre CMsgThread::SuspendThread .
Fonctions membres substituables Description
GetThreadMsg Récupère un objet CMsg mis en file d’attente contenant une requête.
OnThreadInit Fournit l’initialisation sur un thread.
ThreadMessageProc Traite les demandes. Il s’agit d’une fonction membre virtuelle pure.