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);
需求
目標平台 | Windows |
標頭 | d3d12.h |
程式庫 | D3D12.lib |
Dll | D3D12.dll |