Condividi tramite


Classe CMsgThread

[La funzionalità associata a questa pagina, DirectShow, è una funzionalità legacy. È stata sostituita da MediaPlayer, IMFMediaEngine e Audio/Video Capture in Media Foundation. Queste funzionalità sono state ottimizzate per Windows 10 e Windows 11. Microsoft consiglia vivamente che il nuovo codice usi MediaPlayer, IMFMediaEngine e Audio/Video Capture in Media Foundation invece di DirectShow, quando possibile. Microsoft suggerisce che il codice esistente che usa le API legacy venga riscritto per usare le nuove API, se possibile.

La CMsgThread classe è una classe thread di lavoro che accoda le richieste al thread di accodamento per il completamento in modo asincrono. Per usare questa classe, derivare la classe da essa ed eseguire l'override della funzione membro CMsgThread::ThreadMessageProc . La funzione membro ThreadMessageProc esegue ogni richiesta. Le funzioni client e la funzione membro ThreadMessageProc devono condividere una definizione comune dei parametri nell'oggetto CMsg .

Un meccanismo negoziato indica al thread di lavoro di uscire. In genere, si tratta di un valore del codice del messaggio uMsg della classe CMsg .

È consigliabile inviare questo messaggio dal distruttore della classe derivata e chiamare la funzione membro CMsgThread::WaitForThreadExit prima di completare la distruzione della classe derivata.

Membri dati protetti Descrizione
m_hSem Indica un handle utilizzato per la segnalazione.
m_Lock Protegge l'accesso agli elenchi.
m_lWaiting Indica l'attesa di un thread libero.
m_ThreadQueue Esegue l'override della funzione membro CMsgThread::GetThreadMsg e si blocca su elementi diversi da questa coda.
Funzioni di membro Descrizione
CMsgThread Costruisce un oggetto CMsgThread .
Createthread Crea un thread.
GetThreadHandle Recupera l'handle del thread.
GetThreadID Recupera l'identificatore del thread.
GetThreadPriority Recupera la priorità del thread corrente.
PutThreadMsg Accoda una richiesta di esecuzione dal thread di lavoro.
ResumeThread Continua l'operazione del thread di lavoro.
SetThreadPriority Imposta la priorità del thread su un nuovo valore.
SuspendThread Sospende l'operazione di un thread in esecuzione.
WaitForThreadExit Blocca fino a quando il thread non viene chiuso dopo una chiamata alla funzione membro CMsgThread::SuspendThread .
Funzioni membro sostituibili Descrizione
GetThreadMsg Recupera un oggetto CMsg in coda contenente una richiesta.
OnThreadInit Fornisce l'inizializzazione in un thread.
ThreadMessageProc Elabora le richieste. Si tratta di una funzione membro virtuale pura.