将等待事件发出信号的工作项排入队列。
Syntax
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 函数创建的串行队列。
要求
| Requirement | 价值 |
|---|---|
| 最低支持的客户端 | Windows 8 [桌面应用 |UWP 应用] |
| 支持的最低服务器 | Windows Server 2012 [桌面应用 |UWP 应用] |
| 目标平台 | Windows操作系统 |
| Header | mfapi.h |
| Library | Mfplat.lib |
| DLL | Mfplat.dll |