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

# Exécuter une tâche d'API du Microsoft Game Development Kit (GDK)

> Découvrez comment appeler une API GDK asynchrone telle que XUserAddAsync avec un XAsyncBlock, puis récupérer ses données dans le rappel d'achèvement avec XUserAddResult.

Cette rubrique fournit un exemple d'exécution d'une tâche d'API du Microsoft Game Development Kit (GDK). Les fonctions d'API asynchrones du Microsoft Game Development Kit (GDK) implémentent le rappel de travail en interne. Toutefois, celui-ci s'exécute toujours selon les directives de la file d'attente de tâches spécifiée dans le
bloc asynchrone. L'exécution de ces méthodes nécessite le bloc asynchrone et
les paramètres requis par l'API.

```c++ theme={null}
// Set up the async block and completion callback.
XAsyncBlock* async = new XAsyncBlock{};
async->queue = taskQueue;
async->context = nullptr;
async->callback = [](XAsyncBlock* async)
{
    XUserHandle newUser = nullptr;
    HRESULT result = XUserAddResult(async, &newUser);
    // Handle the completion callback.
    delete async;
};

// Start the async call.
HRESULT hr = XUserAddAsync(XUserAddOptions::None, async);
if (FAILED(hr))
{
    delete async;
}
```

Ce code ne diffère pas beaucoup du code permettant d'[exécuter des tâches génériques](https://docs.xbox.com/fr/build/core-features/common/async/async-libraries/async-library-xasync-example-run-simple-task.md).
Au lieu d'utiliser [XAsyncRun](https://docs.xbox.com/fr/reference/system/xasync/functions/xasyncrun.md) avec un rappel de travail, vous appelez
l'API que vous souhaitez utiliser. Le bloc asynchrone est configuré
de la même manière. La différence est que [XUserAddAsync](https://docs.xbox.com/fr/reference/system/xuser/functions/xuseraddasync.md)
renvoie des données à récupérer à partir de l'appel effectué dans le
rappel d'achèvement avec [XUserAddResult](https://docs.xbox.com/fr/reference/system/xuser/functions/xuseraddresult.md).

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

* [XAsync (contenu de l'API)](https://docs.xbox.com/fr/reference/system/xasync/xasync_members.md)
  * Fonctions
    * [XAsyncRun](https://docs.xbox.com/fr/reference/system/xasync/functions/xasyncrun.md)
* [xuser (contenu de l'API)](https://docs.xbox.com/fr/reference/system/xuser/xuser_members.md)
  * Fonctions
    * [XUserAddAsync](https://docs.xbox.com/fr/reference/system/xuser/functions/xuseraddasync.md)
    * [XUserAddResult](https://docs.xbox.com/fr/reference/system/xuser/functions/xuseraddresult.md)

## Voir aussi

[Vue d'ensemble de la bibliothèque XAsync](https://docs.xbox.com/fr/build/core-features/common/async/async-libraries/async-library-xasync.md)

[Configurer une tâche asynchrone (exemple)](https://docs.xbox.com/fr/build/core-features/common/async/async-libraries/async-library-xasync-example-setup-async-task.md)

[Exécuter une tâche simple (exemple)](https://docs.xbox.com/fr/build/core-features/common/async/async-libraries/async-library-xasync-example-run-simple-task.md)

[XAsync](https://docs.xbox.com/fr/reference/system/xasync/xasync_members.md)


## Related topics

- [Exemple de configuration d'une tâche asynchrone](https://docs.xbox.com/fr/build/core-features/common/async/async-libraries/async-library-xasync-example-setup-async-task.md)
- [Exemple d'exécution d'une tâche simple](https://docs.xbox.com/fr/build/core-features/common/async/async-libraries/async-library-xasync-example-run-simple-task.md)
- [Objectifs de conception et améliorations de la programmation asynchrone](https://docs.xbox.com/fr/build/core-features/common/async/async-whitepaper.md)
- [Guides de portage du Microsoft Game Development Kit (GDK)](https://docs.xbox.com/fr/home/build-first-title/porting-guides.md)
- [Utilisation des wrappers C# pour les API GDK dans votre projet Unity](https://docs.xbox.com/fr/build/gdk-and-engines/unity/unity-api-wrappers.md)
