Freigeben über


MFPutWaitingWorkItem-Funktion (mfapi.h)

Stellt ein Arbeitselement in die Warteschlange, das wartet, bis ein Ereignis signalisiert wird.

Syntax

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

Parameter

[in] hEvent

Ein Handle für ein Ereignisobjekt. Um ein Ereignisobjekt zu erstellen, rufen Sie CreateEvent oder CreateEventEx auf.

[in] Priority

Die Priorität des Arbeitselements. Arbeitselemente werden in der Reihenfolge der Priorität ausgeführt.

[in] pResult

Ein Zeiger auf die IMFAsyncResult-Schnittstelle eines asynchronen Ergebnisobjekts. Um das Ergebnisobjekt zu erstellen, rufen Sie MFCreateAsyncResult auf.

[out] pKey

Empfängt einen Schlüssel, mit dem die Wartezeit abgebrochen werden kann. Um die Wartezeit abzubrechen, rufen Sie MFCancelWorkItem auf, und übergeben Sie diesen Schlüssel im Key-Parameter .

Dieser Parameter kann NULL sein.

Rückgabewert

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

Hinweise

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

Die Funktion platziert ein Arbeitselement in der angegebenen Arbeitswarteschlange. Dieses Arbeitselement wartet, bis das in hEvent angegebene Ereignis signalisiert wird. Wenn das Ereignis signalisiert wird, ruft das Arbeitselement einen Rückruf auf. (Der Rückruf ist im Ergebnisobjekt enthalten, das in pResult angegeben ist. Weitere Informationen finden Sie unter MFCreateAsyncResult).

Das Arbeitselement wird von der IMFAsyncCallback::GetParameters-Methode des Rückrufs in einer Arbeitswarteschlange verteilt. Die Arbeitswarteschlange kann wie folgt aussehen:

  • Die Standardarbeitswarteschlange (MFASYNC_CALLBACK_QUEUE_STANDARD).
  • Die Plattform-Multithreadwarteschlange (MFASYNC_CALLBACK_QUEUE_MULTITHREADED).
  • Eine Multithreadwarteschlange, die von der MFLockSharedWorkQueue-Funktion zurückgegeben wird.
  • Eine serielle Warteschlange, die von der MFAllocateSerialWorkQueue-Funktion 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
Unterstützte Mindestversion (Client) Windows 8 [Desktop-Apps | UWP-Apps]
Unterstützte Mindestversion (Server) Windows Server 2012 [Desktop-Apps | UWP-Apps]
Zielplattform Windows
Kopfzeile mfapi.h
DLL Mfplat.dll

Weitere Informationen

Media Foundation-Funktionen

Verbesserungen bei Arbeitswarteschlange und Threading

Arbeitswarteschlangen