Metodo ID3D12Fence::SetEventOnCompletion (d3d12.h)
Specifica un evento generato quando il recinto raggiunge un determinato valore.
Sintassi
HRESULT SetEventOnCompletion(
UINT64 Value,
HANDLE hEvent
);
Parametri
Value
Tipo: UINT64
Valore della recinzione quando l'evento deve essere segnalato.
hEvent
Tipo: HANDLE
Handle per l'oggetto evento.
Valore restituito
Tipo: HRESULT
Questo metodo restituisce E_OUTOFMEMORY se i componenti del kernel non hanno memoria sufficiente per archiviare l'evento in un elenco. Vedere Codici restituiti Direct3D 12 per altri valori restituiti possibili.
Commenti
Per specificare più recinzioni prima che venga attivato un evento, fare riferimento a SetEventOnMultipleFenceCompletion.
Se hEvent è un handle Null, questa API non restituirà finché non sono stati raggiunti i valori di recinzione specificati.
Questo metodo può essere chiamato in modo sicuro da più thread alla volta.
Esempio
L'esempio D3D12Multithreading usa ID3D12Fence::SetEventOnCompletion come indicato di seguito:
// 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);
Fare riferimento al codice di esempio nel riferimento a Direct3D 12.
Requisiti
Piattaforma di destinazione | Windows |
Intestazione | d3d12.h |
Libreria | D3D12.lib |
DLL | D3D12.dll |