Share via


Método ID3D12Fence::SetEventOnCompletion (d3d12.h)

Especifica um evento gerado quando a cerca atinge um determinado valor.

Sintaxe

HRESULT SetEventOnCompletion(
  UINT64 Value,
  HANDLE hEvent
);

Parâmetros

Value

Tipo: UINT64

O valor da cerca quando o evento deve ser sinalizado.

hEvent

Tipo: HANDLE

Um identificador para o objeto de evento.

Valor retornado

Tipo: HRESULT

Esse método retornará E_OUTOFMEMORY se os componentes do kernel não tiverem memória suficiente para armazenar o evento em uma lista. Confira Códigos de retorno do Direct3D 12 para obter outros valores retornados possíveis.

Comentários

Para especificar várias cercas antes que um evento seja disparado, consulte SetEventOnMultipleFenceCompletion.

Se hEvent for um identificador nulo, essa API não retornará até que os valores de limite especificados tenham sido atingidos.

Esse método pode ser chamado com segurança de vários threads ao mesmo tempo.

Exemplos

O exemplo D3D12Multithreading usa ID3D12Fence::SetEventOnCompletion da seguinte maneira:

// 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);

Consulte o Código de exemplo na referência do Direct3D 12.

Requisitos

   
Plataforma de Destino Windows
Cabeçalho d3d12.h
Biblioteca D3D12.lib
DLL D3D12.dll

Confira também

ID3D12Fence

Sincronização de vários mecanismos