CMsgThread-Klasse
[Das dieser Seite zugeordnete Feature DirectShow ist ein Legacyfeature. Es wurde durch MediaPlayer, IMFMediaEngine und Audio/Video Capture in Media Foundation ersetzt. Diese Features wurden für Windows 10 und Windows 11 optimiert. Microsoft empfiehlt dringend, dass neuer Code nach Möglichkeit MediaPlayer, IMFMediaEngine und Audio/Video Capture in Media Foundation anstelle von DirectShow verwendet. Microsoft schlägt vor, vorhandenen Code, der die Legacy-APIs verwendet, um nach Möglichkeit die neuen APIs zu verwenden.]
Die CMsgThread
-Klasse ist eine Workerthreadklasse, die Anforderungen an den Warteschlangenthread zur asynchronen Vervollständigung in die Warteschlange stellt. Um diese Klasse zu verwenden, leiten Sie Ihre Klasse davon ab, und überschreiben Sie die Memberfunktion CMsgThread::ThreadMessageProc . Die ThreadMessageProc-Memberfunktion führt jede Anforderung aus. Ihre Clientfunktionen und die ThreadMessageProc-Memberfunktion müssen eine gemeinsame Definition der Parameter im CMsg-Objekt verwenden.
Ein ausgehandelter Mechanismus weist den Workerthread an, den Thread zu beenden. In der Regel ist dies ein Wert des uMsg-Nachrichtencodes der CMsg-Klasse.
Es empfiehlt sich, diese Nachricht vom Destruktor Ihrer abgeleiteten Klasse zu senden und die CMsgThread::WaitForThreadExit-Memberfunktion aufzurufen, bevor die Zerstörung der abgeleiteten Klasse abgeschlossen ist.
Geschützte Datenmember | Beschreibung |
---|---|
m_hSem | Gibt einen Handle an, der für die Signalisierung verwendet wird. |
m_Lock | Schützt den Zugriff auf Listen. |
m_lWaiting | Gibt an, auf einen freien Thread zu warten. |
m_ThreadQueue | Überschreibt die CMsgThread::GetThreadMsg-Memberfunktion und Blöcke für andere Dinge als diese Warteschlange. |
Elementfunktionen | Beschreibung |
CMsgThread | Erstellt ein CMsgThread-Objekt . |
CreateThread | Erstellt einen Thread. |
GetThreadHandle | Ruft das Threadhandle ab. |
GetThreadID | Ruft den Bezeichner des Threads ab. |
GetThreadPriority | Ruft die aktuelle Threadpriorität ab. |
PutThreadMsg | Stellt eine Anforderung für die Ausführung durch den Workerthread in die Warteschlange. |
ResumeThread | Setzt den Betrieb des Workerthreads fort. |
SetThreadPriority | Legt die Priorität des Threads auf einen neuen Wert fest. |
SuspendThread | Hält den Vorgang eines ausgeführten Threads an. |
WaitForThreadExit | Blockiert, bis der Thread nach einem Aufruf der CMsgThread::SuspendThread-Memberfunktion beendet wurde. |
Überschreibbare Memberfunktionen | Beschreibung |
GetThreadMsg | Ruft ein CMsg-Objekt in der Warteschlange ab, das eine Anforderung enthält. |
OnThreadInit | Stellt die Initialisierung für einen Thread bereit. |
ThreadMessageProc | Verarbeitet Anforderungen. Dies ist eine reine virtuelle Memberfunktion. |