Condividi tramite


Metodo CAMMsgEvent.WaitMsg

[La funzionalità associata a questa pagina, DirectShow, è una funzionalità legacy. È stata sostituita da MediaPlayer, FMMediaEngine 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, FMMediaEngine e Audio/Video Capture in Media Foundation anziché DirectShow, quando possibile. Microsoft suggerisce che il codice esistente che usa le API legacy venga riscritto per usare le nuove API, se possibile.

Il WaitMsg metodo attende che l'evento venga segnalato, durante l'invio di messaggi inviati.

Sintassi

BOOL WaitMsg(
   DWORD dwTimeOut = INFINITE
);

Parametri

dwTimeOut

Valore di timeout facoltativo, in millisecondi.

Valore restituito

Restituisce TRUE se l'evento viene segnalato o FALSE se si è verificato il timeout.

Commenti

Questo metodo chiama la funzione PeekMessage per elaborare i messaggi. Chiamare questo metodo anziché CAMEvent::Wait se il thread deve elaborare i messaggi durante l'attesa di un evento. Se il thread non elabora i messaggi e un altro thread invia un messaggio, il deadlock potrebbe verificarsi.

Si supponga, ad esempio, di creare un thread e quindi di bloccare fino all'inizializzazione del thread. Se il thread invia un messaggio alla finestra chiamando la funzione SendMessage, verrà generato un deadlock. Questo perché SendMessage non restituisce finché il messaggio non è stato elaborato. La chiamata a WaitMsg consente di restituire la chiamata SendMessage, impedendo il deadlock.

Requisiti

Requisito Valore
Intestazione
Wxutil.h (include Streams.h)
Libreria
Strmbase.lib (build al dettaglio);
Strmbasd.lib (build di debug)

Vedi anche

Classe CAMMsgEvent