> ## 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.

# Exemple de nettoyage d'une file d'attente de tâches

> Exemple de nettoyage d'une file d'attente de tâches

Cette rubrique fournit un exemple de nettoyage d'une file d'attente de tâches lorsqu'elle n'est plus nécessaire, afin d'éviter les fuites de ressources. Toutefois, une file d'attente de tâches ne peut pas simplement être libérée immédiatement. Elle doit d'abord être arrêtée, vidée pour
garantir que tout ce qui y a été mis en file d'attente a été exécuté, puis libérée.

L'[appel d'arrêt](/fr/reference/system/xtaskqueue/functions/xtaskqueueterminate) peut être configuré pour attendre ou pour retourner
immédiatement. Si l'appel n'attend pas, un rappel peut éventuellement être spécifié
pour être notifié lorsque l'arrêt est entièrement terminé. S'il existe
des [ports manuels](/fr/reference/system/xtaskqueue/enums/xtaskqueuedispatchmode), ils doivent continuer à être distribués jusqu'à ce que
la [fonction de distribution](/fr/reference/system/xtaskqueue/functions/xtaskqueuedispatch) retourne.

```c++ theme={null}
XTaskQueueTerminate(taskQueue, false, nullptr, nullptr);
bool result;
do
{
    result = XTaskQueueDispatch(taskQueue, XTaskQueuePort::Completion, INFINITE);
} while (result == true);
XTaskQueueCloseHandle(taskQueue);
```

Cet exemple arrête la file d'attente de tâches, mais n'attend pas, grâce au
paramètre d'attente de [XTaskQueueTerminate](/fr/reference/system/xtaskqueue/functions/xtaskqueueterminate).
L'appel `terminate` ajoute un rappel à chaque port pour détecter le moment où la file d'attente
est vidée. Pour tenir compte de ce rappel et de tous les rappels mis en file d'attente précédemment,
`dispatch` est appelé en continu jusqu'à ce qu'il retourne `false`.

## Documentation de référence de l'API

* [XTaskQueue (contenu de l'API)](/fr/reference/system/xtaskqueue/xtaskqueue_members)
  * Fonctions
    * [xtaskqueueterminate](/fr/reference/system/xtaskqueue/functions/xtaskqueueterminate)
    * [xtaskqueuedispatch](/fr/reference/system/xtaskqueue/functions/xtaskqueuedispatch)

## Voir aussi

[Vue d'ensemble de la bibliothèque XTaskQueue](/fr/build/core-features/common/async/async-libraries/async-library-xtaskqueue)

[Créer une file d'attente de tâches (exemple)](/fr/build/core-features/common/async/async-libraries/async-library-xtaskqueue-example-create-task-queue)

[Distribuer une file d'attente de tâches (exemple)](/fr/build/core-features/common/async/async-libraries/async-library-xtaskqueue-example-dispatch-task-queue)

[Conception de la file d'attente de tâches](/fr/build/core-features/common/async/async-task-queue-design)

[XTaskQueue](/fr/reference/system/xtaskqueue/xtaskqueue_members)


## Related topics

- [Notes de version du SDK C++ PlayFab Multiplayer](/fr-CA/services/playfab/multiplayer/lobby/lobby-matchmaking-sdks/lobby-and-matchmaking-release-notes.md)
- [Exemples GDK](/fr/home/setup-install/samples.md)
- [Exemples du GDK](/fr-CA/home/setup-install/samples.md)
- [Notes de version de PlayFab Party](/fr/services/playfab/multiplayer/networking/release-notes.md)
- [Étapes de test de validation des supports](/fr-CA/publishing/game-publishing/concepts/certification/certification-media-validation-test-steps.md)
