ID3D12Fence::SetEventOnCompletion, méthode (d3d12.h)

Spécifie un événement déclenché lorsque la clôture atteint une certaine valeur.

Syntaxe

HRESULT SetEventOnCompletion(
  UINT64 Value,
  HANDLE hEvent
);

Paramètres

Value

Type : UINT64

Valeur de clôture lorsque l’événement doit être signalé.

hEvent

Type : HANDLE

Handle à l’objet d’événement.

Valeur retournée

Type : HRESULT

Cette méthode retourne E_OUTOFMEMORY si les composants du noyau n’ont pas suffisamment de mémoire pour stocker l’événement dans une liste. Consultez les codes de retour Direct3D 12 pour obtenir d’autres valeurs de retour possibles.

Notes

Pour spécifier plusieurs clôtures avant qu’un événement soit déclenché, reportez-vous à SetEventOnMultipleFenceCompletion.

Si hEvent est un handle Null, cette API ne retourne pas tant que la ou les valeurs de clôture spécifiées n’ont pas été atteintes.

Cette méthode peut être appelée en toute sécurité à partir de plusieurs threads à la fois.

Exemples

L’exemple D3D12Multithreading utilise ID3D12Fence::SetEventOnCompletion comme suit :

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

Reportez-vous à l’exemple de code de la référence Direct3D 12.

Configuration requise

   
Plateforme cible Windows
En-tête d3d12.h
Bibliothèque D3D12.lib
DLL D3D12.dll

Voir aussi

ID3D12Fence

Synchronisation multi-moteur