ID3D12Fence::SetEventOnCompletion 方法 (d3d12.h)
指定当围栏达到特定值时引发的事件。
语法
HRESULT SetEventOnCompletion(
UINT64 Value,
HANDLE hEvent
);
参数
Value
类型: UINT64
要向事件发出信号时的围栏值。
hEvent
类型: HANDLE
事件对象的句柄。
返回值
类型: HRESULT
如果内核组件没有足够的内存将事件存储在列表中,则此方法返回 E_OUTOFMEMORY 。 有关其他可能的返回值,请参阅 Direct3D 12 返回代码 。
备注
若要在触发事件之前指定多个围栏,请参阅 SetEventOnMultipleFenceCompletion。
如果 hEvent 为 null 句柄,则在达到指定的围栏值 () 之前,此 API 不会返回。
可以一次从多个线程安全地调用此方法。
示例
D3D12Multithreading 示例使用 ID3D12Fence::SetEventOnCompletion,如下所示:
// Wait for the command list to execute; we are reusing the same command
// list in our main loop but for now, we just want to wait for setup to
// complete before continuing.
// Signal and increment the fence value.
const UINT64 fenceToWaitFor = m_fenceValue;
ThrowIfFailed(m_commandQueue->Signal(m_fence.Get(), fenceToWaitFor));
m_fenceValue++;
// Wait until the fence is completed.
ThrowIfFailed(m_fence->SetEventOnCompletion(fenceToWaitFor, m_fenceEvent));
WaitForSingleObject(m_fenceEvent, INFINITE);
请参阅 Direct3D 12 参考中的示例代码。
要求
目标平台 | Windows |
标头 | d3d12.h |
Library | D3D12.lib |
DLL | D3D12.dll |