Freigeben über


CAMMsgEvent.WaitMsg-Methode

[Das dieser Seite zugeordnete Feature DirectShow ist ein Legacyfeature. Es wurde von MediaPlayer, IMFMediaEngine und Audio/Video Capture in Media Foundation abgelöst. Diese Features wurden für Windows 10 und Windows 11 optimiert. Microsoft empfiehlt dringend, dass neuer Code mediaPlayer, IMFMediaEngine und Audio/Video Capture in Media Foundation anstelle von DirectShow verwendet, wenn möglich. Microsoft schlägt vor, dass vorhandener Code, der die Legacy-APIs verwendet, so umgeschrieben wird, dass nach Möglichkeit die neuen APIs verwendet werden.]

Die WaitMsg -Methode wartet, bis das Ereignis signalisiert wird, während gesendete Nachrichten gesendet werden.

Syntax

BOOL WaitMsg(
   DWORD dwTimeOut = INFINITE
);

Parameter

dwTimeOut

Optionaler Timeoutwert in Millisekunden.

Rückgabewert

Gibt TRUE zurück, wenn das Ereignis signalisiert wird, oder FALSE , wenn das Timeout aufgetreten ist.

Bemerkungen

Diese Methode ruft die PeekMessage-Funktion auf, um Nachrichten zu verarbeiten. Rufen Sie diese Methode anstelle von CAMEvent::Wait auf, wenn Ihr Thread Meldungen verarbeiten muss, während auf ein Ereignis gewartet wird. Wenn der Thread keine Nachrichten verarbeitet und ein anderer Thread eine Nachricht sendet, kann ein Deadlock auftreten.

Angenommen, Sie erstellen einen Thread und blockieren dann, bis der Thread initialisiert wird. Wenn der Thread durch Aufrufen der SendMessage-Funktion eine Nachricht an Ihr Fenster sendet, führt dies zu einem Deadlock. Dies liegt daran, dass SendMessage erst zurückgegeben wird, wenn die Nachricht verarbeitet wurde. Beim Aufrufen von WaitMsg kann der SendMessage-Aufruf zurückgegeben werden, wodurch das Deadlock verhindert wird.

Anforderungen

Anforderung Wert
Header
Wxutil.h (Streams.h einschließen)
Bibliothek
Strmbase.lib (Einzelhandelsbuilds);
Strmbasd.lib (Debugbuilds)

Siehe auch

CAMMsgEvent-Klasse