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 函数创建的串行队列。
要求
要求 | 值 |
---|---|
最低受支持的客户端 | Windows 8 [桌面应用 |UWP 应用] |
最低受支持的服务器 | Windows Server 2012 [桌面应用 |UWP 应用] |
目标平台 | Windows |
标头 | mfapi.h |
DLL | Mfplat.dll |