Share via


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

Spécifie un événement qui est 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 de l’objet d’événement.

Valeur retournée

Type : HRESULT

Cette méthode retourne E_OUTOFMEMORY si les composants du noyau ne disposent pas de suffisamment de mémoire pour stocker l’événement dans une liste. Pour obtenir d’autres valeurs de retour possibles, consultez Codes de retour Direct3D 12 .

Notes

Pour spécifier plusieurs clôtures avant le déclenchement d’un événement, 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 dans la référence Direct3D 12.

Spécifications

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

Voir aussi

ID3D12Fence

Synchronisation multi-moteur