MFPutWaitingWorkItem 函数 (mfapi.h)

将等待事件发出信号的工作项排队。

语法

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

参数

[in] hEvent

事件对象的句柄。 若要创建事件对象,请调用 CreateEventCreateEventEx

[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_IOMFASYNC_CALLBACK_QUEUE_LONG_FUNCTIONMFASYNC_CALLBACK_QUEUE_RTMFASYNC_CALLBACK_QUEUE_TIMER

要求

要求
最低受支持的客户端 Windows 8 [桌面应用 |UWP 应用]
最低受支持的服务器 Windows Server 2012 [桌面应用 |UWP 应用]
目标平台 Windows
标头 mfapi.h
DLL Mfplat.dll

另请参阅

媒体基础函数

工作队列和线程处理改进

工作队列