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