Freigeben über


MFPutWaitingWorkItem-Funktion (mfapi.h)

Stellt eine Arbeitsaufgabe in die Warteschlange, die darauf wartet, dass ein Ereignis signalisiert wird.

Syntax

HRESULT MFPutWaitingWorkItem(
  [in]  HANDLE         hEvent,
  [in]  LONG           Priority,
  [in]  IMFAsyncResult *pResult,
  [out] MFWORKITEM_KEY *pKey
);

Die Parameter

[in] hEvent

Ein Handle für ein Ereignisobjekt. Zum Erstellen eines Ereignisobjekts rufen Sie CreateEvent oder CreateEventEx auf.

[in] Priority

Die Priorität der Arbeitsaufgabe. Arbeitsaufgaben werden in der Reihenfolge der Priorität ausgeführt.

[in] pResult

Ein Zeiger auf die IMFAsyncResult-Schnittstelle eines asynchronen Ergebnisobjekts. Rufen Sie zum Erstellen des Ergebnisobjekts MFCreateAsyncResult auf.

[out] pKey

Empfängt einen Schlüssel, der zum Abbrechen der Wartezeit verwendet werden kann. Rufen Sie zum Abbrechen der Wartezeit MFCancelWorkItem auf, und übergeben Sie diesen Schlüssel im Key-Parameter .

Dieser Parameter kann NULL sein.

Rückgabewert

Wenn diese Funktion erfolgreich ist, wird S_OK zurückgegeben. Andernfalls wird ein HRESULT-Fehlercode zurückgegeben.

Bemerkungen

Mit dieser Funktion kann eine Komponente auf ein Ereignis warten, ohne den aktuellen Thread zu blockieren.

Die Funktion fügt eine Arbeitsaufgabe in die angegebene Arbeitswarteschlange ein. Diese Arbeitsaufgabe wartet auf das ereignis, das in hEvent angegeben wurde, um signalisiert zu werden. Wenn das Ereignis signalisiert wird, ruft die Arbeitsaufgabe einen Rückruf auf. (Der Rückruf ist im in pResult angegebenen Ergebnisobjekt enthalten. Weitere Informationen finden Sie unter MFCreateAsyncResult).

Die Arbeitsaufgabe wird von der IMFAsyncCallback::GetParameters-Methode des Rückrufs in einer Arbeitswarteschlange verteilt. Die Arbeitswarteschlange kann eine der folgenden Sein:

  • Die Standardarbeitswarteschlange (MFASYNC_CALLBACK_QUEUE_STANDARD).
  • Die Multithread-Warteschlange der Plattform (MFASYNC_CALLBACK_QUEUE_MULTITHREADED).
  • Eine von der MFLockSharedWorkQueue-Funktion zurückgegebene Multithread-Warteschlange.
  • Eine serielle Warteschlange, die von der Funktion MFAllocateSerialWorkQueue erstellt wird.
Verwenden Sie keine der folgenden Arbeitswarteschlangen: MFASYNC_CALLBACK_QUEUE_IO, MFASYNC_CALLBACK_QUEUE_LONG_FUNCTION, MFASYNC_CALLBACK_QUEUE_RT oder MFASYNC_CALLBACK_QUEUE_TIMER.

Anforderungen

Anforderung Wert
Mindestens unterstützter Client Windows 8 [Desktop-Apps | UWP-Apps]
Mindestanforderungen für unterstützte Server Windows Server 2012 [Desktop-Apps | UWP-Apps]
Zielplattform Fenster
Header mfapi.h
Library Mfplat.lib
DLL Mfplat.dll

Siehe auch

Media Foundation-Funktionen

Verbesserungen bei Der Arbeitswarteschlange und Threading

Arbeitswarteschlangen