Condividi tramite


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

Vedi anche

ID3D12Fence

Sincronizzazione multi-motore