Compartilhar via


Função MFPutWaitingWorkItem (mfapi.h)

Enfileira um item de trabalho que aguarda um evento ser sinalizado.

Sintaxe

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

Parâmetros

[in] hEvent

Um identificador para um objeto de evento. Para criar um objeto de evento, chame CreateEvent ou CreateEventEx.

[in] Priority

A prioridade do item de trabalho. Os itens de trabalho são executados em ordem de prioridade.

[in] pResult

Um ponteiro para a interface IMFAsyncResult de um objeto de resultado assíncrono. Para criar o objeto de resultado, chame MFCreateAsyncResult.

[out] pKey

Recebe uma chave que pode ser usada para cancelar a espera. Para cancelar a espera, chame MFCancelWorkItem e passe essa chave no parâmetro Key .

Este parâmetro pode ser NULL.

Retornar valor

Se essa função for bem-sucedida, ela retornará S_OK. Caso contrário, ele retornará um código de erro HRESULT.

Comentários

Essa função permite que um componente aguarde um evento sem bloquear o thread atual.

A função coloca um item de trabalho na fila de trabalho especificada. Este item de trabalho aguarda o evento dado em hEvent ser sinalizado. Quando o evento é sinalizado, o item de trabalho invoca um retorno de chamada. (O retorno de chamada está contido no objeto de resultado fornecido em pResult. Para obter mais informações, consulte MFCreateAsyncResult).

O item de trabalho é expedido em uma fila de trabalho pelo método IMFAsyncCallback::GetParameters do retorno de chamada. A fila de trabalho pode ser qualquer uma das seguintes:

  • A fila de trabalho padrão (MFASYNC_CALLBACK_QUEUE_STANDARD).
  • A fila multithread da plataforma (MFASYNC_CALLBACK_QUEUE_MULTITHREADED).
  • Uma fila multithread retornada pela função MFLockSharedWorkQueue .
  • Uma fila serial criada pela função MFAllocateSerialWorkQueue .
Não use nenhuma das seguintes filas de trabalho: MFASYNC_CALLBACK_QUEUE_IO, MFASYNC_CALLBACK_QUEUE_LONG_FUNCTION, MFASYNC_CALLBACK_QUEUE_RT ou MFASYNC_CALLBACK_QUEUE_TIMER.

Requisitos

Requisito Valor
Cliente mínimo com suporte Windows 8 [aplicativos da área de trabalho | Aplicativos UWP]
Servidor mínimo com suporte Windows Server 2012 [aplicativos da área de trabalho | Aplicativos UWP]
Plataforma de Destino Windows
Cabeçalho mfapi.h
DLL Mfplat.dll

Confira também

Funções do Media Foundation

Melhorias na fila de trabalho e no threading

Filas de Trabalho