Функция MFPutWaitingWorkItem (mfapi.h)

Очереди рабочего элемента, ожидающего передачи сигнала о событии.

Синтаксис

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

Параметры

[in] hEvent

Дескриптор объекта события. Чтобы создать объект события, вызовите CreateEvent или CreateEventEx.

[in] Priority

Приоритет рабочего элемента. Рабочие элементы выполняются в порядке приоритета.

[in] pResult

Указатель на интерфейс МВФAsyncResult объекта асинхронного результата. Чтобы создать объект результата, вызовите MFCreateAsyncResult.

[out] pKey

Получает ключ, который можно использовать для отмены ожидания. Чтобы отменить ожидание, вызовите MFCancelWorkItem и передайте этот ключ в параметре Key .

Этот параметр может иметь значение NULL.

Возвращаемое значение

Если эта функция выполнена успешно, она возвращает S_OK. В противном случае возвращается код ошибки HRESULT .

Замечания

Эта функция позволяет компоненту ждать события без блокировки текущего потока.

Функция помещает рабочий элемент в указанную рабочую очередь. Этот рабочий элемент ожидает, пока событие, заданное в hEvent , будет сигнализировать. Когда событие сигнализирует, рабочий элемент вызывает обратный вызов. (Обратный вызов содержится в объекте результата, заданном в pResult. Дополнительные сведения см. в разделе MFCreateAsyncResult).

Рабочий элемент отправляется в рабочую очередь методом МВФAsyncCallback::GetParameters обратного вызова. Рабочая очередь может быть любой из следующих:

  • Рабочая очередь по умолчанию (MFASYNC_CALLBACK_QUEUE_STANDARD).
  • Многопоточной очереди платформы (MFASYNC_CALLBACK_QUEUE_MULTITHREADED).
  • Многопоточной очереди, возвращаемой функцией MFLockSharedWorkQueue .
  • Последовательная очередь, созданная функцией MFAllocateSerialWorkQueue .
Не используйте ни одну из следующих рабочих очередей: MFASYNC_CALLBACK_QUEUE_IO, MFASYNC_CALLBACK_QUEUE_LONG_FUNCTION, MFASYNC_CALLBACK_QUEUE_RT или MFASYNC_CALLBACK_QUEUE_TIMER.

Требования

Требование Ценность
Минимальный поддерживаемый клиент Windows 8 [классические приложения | Приложения UWP]
минимальный поддерживаемый сервер Windows Server 2012 [классические приложения | Приложения UWP]
целевая платформа Виндоус
Header mfapi.h
Library Mfplat.lib
DLL Mfplat.dll

См. также

Функции Media Foundation

Улучшения рабочей очереди и потоков

Рабочие очереди