Freigeben über


ID3D12Fence::SetEventOnCompletion-Methode (d3d12.h)

Gibt ein Ereignis an, das ausgelöst wird, wenn der Zaun einen bestimmten Wert erreicht.

Syntax

HRESULT SetEventOnCompletion(
  UINT64 Value,
  HANDLE hEvent
);

Parameter

Value

Typ: UINT64

Der Zaunwert, wenn das Ereignis signalisiert werden soll.

hEvent

Typ: HANDLE

Ein Handle für das Ereignisobjekt.

Rückgabewert

Typ: HRESULT

Diese Methode gibt E_OUTOFMEMORY zurück, wenn die Kernelkomponenten nicht über genügend Arbeitsspeicher verfügen, um das Ereignis in einer Liste zu speichern. Weitere mögliche Rückgabewerte finden Sie unter Direct3D 12-Rückgabecodes .

Hinweise

Informationen zum Angeben mehrerer Zäune vor dem Auslösen eines Ereignisses finden Sie unter SetEventOnMultipleFenceCompletion.

Wenn hEvent ein NULL-Handle ist, wird diese API erst zurückgegeben, wenn die angegebenen Umgrenzungswerte erreicht wurden.

Diese Methode kann von mehreren Threads gleichzeitig sicher aufgerufen werden.

Beispiele

Im D3D12Multithreading-Beispiel wird ID3D12Fence::SetEventOnCompletion wie folgt verwendet:

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

Weitere Informationen finden Sie im Beispielcode in der Direct3D 12-Referenz.

Anforderungen

   
Zielplattform Windows
Kopfzeile d3d12.h
Bibliothek D3D12.lib
DLL D3D12.dll

Weitere Informationen

ID3D12Fence

Synchronisierung mit mehreren Modulen