Freigeben über


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.