> ## Documentation Index
> Fetch the complete documentation index at: https://devdocs.xbox.com/llms.txt
> Use this file to discover all available pages before exploring further.

# SetEventOnCompletion

> Spécifie un événement qui doit être déclenché lorsque la fence atteint une certaine valeur. (ID3D12Fence.SetEventOnCompletion)

Spécifie un événement qui est déclenché lorsque la fence atteint une certaine valeur.

## Syntaxe

```cpp theme={null}
HRESULT SetEventOnCompletion(
    UINT64 Value,
    HANDLE hEvent
)
```

### Paramètres

*Value*\
Type : UINT64

Valeur de la fence à laquelle l'événement doit être signalé.

*hEvent*\
Type : HANDLE

Handle vers l'objet événement.

### Valeur renvoyée

Type : HRESULT

Cette méthode renvoie **E\_OUTOFMEMORY** si les composants du noyau ne disposent pas de suffisamment de mémoire pour stocker l'événement dans une liste. Consultez [Codes de retour Direct3D 12](https://learn.microsoft.com/en-us/windows/win32/direct3d12/d3d12-graphics-reference-returnvalues) pour les autres valeurs de retour possibles.

## Remarques

Pour spécifier plusieurs fences avant le déclenchement d'un événement, reportez-vous à [SetEventOnMultipleFenceCompletion](/fr/reference/graphics/d3d12/interfaces/id3d12device1/methods/id3d12device1_seteventonmultiplefencecompletion_public).

Si *hEvent* est un handle null, cette API ne retourne pas tant que la ou les valeurs de fence spécifiées n'ont pas été atteintes.

Cette méthode peut être appelée en toute sécurité depuis plusieurs threads simultanément.

## Exemples

L'exemple [D3D12Multithreading](https://learn.microsoft.com/en-us/windows/win32/direct3d12/working-samples) utilise **ID3D12Fence::SetEventOnCompletion** comme suit :

```cpp theme={null}
// 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](https://learn.microsoft.com/en-us/windows/win32/direct3d12/notes-on-example-code).

## Configuration requise

**En-tête :** d3d12\_xs.h ou d3d12\_x.h\
**Bibliothèque :** d3d12\_xs.lib ou d3d12\_x.lib\
**Plateformes prises en charge** : consoles XBOX Series et famille XBOX One

## Voir aussi

[ID3D12Fence](/fr/reference/graphics/d3d12/interfaces/id3d12fence/id3d12fence_public)

[Synchronisation multimoteur](https://learn.microsoft.com/en-us/windows/win32/direct3d12/user-mode-heap-synchronization)


## Related topics

- [SetEventOnMultipleFenceCompletion](/fr/reference/graphics/d3d12/interfaces/id3d12device1/methods/id3d12device1_seteventonmultiplefencecompletion_public.md)
- [Vue d'ensemble de DirectStorage](/fr/build/console-features/storage/directstorage/directstorage-overview.md)
- [GetDeviceRemovedReason](/fr/reference/graphics/d3d12/interfaces/id3d12device/methods/id3d12device_getdeviceremovedreason_public.md)
- [Wait](/fr/reference/graphics/d3d12/interfaces/id3d12commandqueue/methods/id3d12commandqueue_wait_public.md)
- [EventExportCompletionStatus](/fr/services/playfab/api-references/events/data-types/eventexportcompletionstatus.md)
