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. |