Поделиться через


Функция 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

Указатель на интерфейс IMFAsyncResult асинхронного объекта результата. Чтобы создать результирующий объект, вызовите MFCreateAsyncResult.

[out] pKey

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

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

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

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

Комментарии

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

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

Рабочий элемент отправляется в рабочую очередь методом IMFAsyncCallback::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]
Целевая платформа Windows
Header mfapi.h
DLL Mfplat.dll

См. также раздел

Функции Media Foundation

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

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