Fonction MFPut WaitingWorkItem (mfapi.h)

Met en file d’attente un élément de travail qui attend qu’un événement soit signalé.

Syntaxe

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

Paramètres

[in] hEvent

Handle pour un objet d’événement. Pour créer un objet d’événement, appelez CreateEvent ou CreateEventEx.

[in] Priority

Priorité de l’élément de travail. Les éléments de travail sont exécutés par ordre de priorité.

[in] pResult

Pointeur vers l’interface IMFAsyncResult d’un objet de résultat asynchrone. Pour créer l’objet de résultat, appelez MFCreateAsyncResult.

[out] pKey

Reçoit une clé qui peut être utilisée pour annuler l’attente. Pour annuler l’attente, appelez MFCancelWorkItem et passez cette clé dans le paramètre Key .

Ce paramètre peut être NULL.

Valeur retournée

Si cette fonction réussit, elle retourne S_OK. Sinon, elle retourne un code d’erreur HRESULT.

Remarques

Cette fonction permet à un composant d’attendre un événement sans bloquer le thread actuel.

La fonction place un élément de travail dans la file d’attente de travail spécifiée. Cet élément de travail attend que l’événement donné dans hEvent soit signalé. Lorsque l’événement est signalé, l’élément de travail appelle un rappel. (Le rappel est contenu dans l’objet de résultat donné dans pResult. Pour plus d’informations, consultez MFCreateAsyncResult).

L’élément de travail est distribué sur une file d’attente de travail par la méthode IMFAsyncCallback ::GetParameters du rappel. La file d’attente de travail peut être l’une des suivantes :

  • File d’attente de travail par défaut (MFASYNC_CALLBACK_QUEUE_STANDARD).
  • File d’attente multithread de plateforme (MFASYNC_CALLBACK_QUEUE_MULTITHREADED).
  • File d’attente multithread retournée par la fonction MFLockSharedWorkQueue .
  • File d’attente série créée par la fonction MFAllocateSerialWorkQueue .
N’utilisez aucune des files d’attente de travail suivantes : MFASYNC_CALLBACK_QUEUE_IO, MFASYNC_CALLBACK_QUEUE_LONG_FUNCTION, MFASYNC_CALLBACK_QUEUE_RT ou MFASYNC_CALLBACK_QUEUE_TIMER.

Configuration requise

Condition requise Valeur
Client minimal pris en charge Windows 8 [applications de bureau | Applications UWP]
Serveur minimal pris en charge Windows Server 2012 [applications de bureau | Applications UWP]
Plateforme cible Windows
En-tête mfapi.h
DLL Mfplat.dll

Voir aussi

Fonctions Media Foundation

Améliorations apportées à la file d’attente de travail et au threading

Files d’attente de travail