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

# Exemple d'exécution d'une tâche simple

> Apprenez à démarrer une tâche asynchrone personnalisée avec XAsyncRun en configurant un XAsyncBlock et un rappel de travail, puis à lire la valeur de retour avec XAsyncGetStatus.

Cette rubrique fournit un exemple d'exécution d'une tâche utilisateur simple. Les tâches simples peuvent être démarrées avec la fonction [XAsyncRun](https://docs.xbox.com/fr/reference/system/xasync/functions/xasyncrun.md).
Cette fonction prend le bloc asynchrone en entrée, puis nécessite
d'implémenter le rappel de travail sous forme de foncteur ou d'expression lambda. N'oubliez pas
que le bloc asynchrone spécifie la file d'attente de tâches à utiliser et le
rappel d'achèvement facultatif.

```c++ theme={null}
XAsyncBlock* async = new XAsyncBlock{};
async->queue = taskQueue;
async->context = contextData;
async->callback = 
    [](XAsyncBlock* async)
    {
        // The optional completion callback.
        delete async;
    }

XAsyncRun(async,
    [](XAsyncBlock* async)->HRESULT
    {
        // The work callback is implemented here.
        return S_OK;
    });
```

Cet exemple utilise `XAsyncRun` pour démarrer une tâche asynchrone simple
et personnalisée. Le bloc asynchrone contient la file d'attente de tâches à utiliser et
le rappel d'achèvement.
`XAsyncRun` nécessite un rappel de travail, et
celui-ci possède une valeur de retour. Elle est ensuite renvoyée par un appel à
[XAsyncGetStatus](https://docs.xbox.com/fr/reference/system/xasync/functions/xasyncgetstatus.md). En interne, `XAsyncRun`
dispose d'une configuration de fournisseur asynchrone simple pour gérer la mise en file d'attente du
rappel de travail spécifié, la mise en file d'attente du rappel d'achèvement du
bloc asynchrone et les autres changements d'état du processus. Cela signifie qu'aucun
code supplémentaire n'est nécessaire pour exécuter des tâches asynchrones simples : il suffit de configurer le
bloc asynchrone et d'appeler `XAsyncRun`.

## 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)
    * [XAsyncGetStatus](https://docs.xbox.com/fr/reference/system/xasync/functions/xasyncgetstatus.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 d'API du Microsoft Game Development Kit (GDK) (exemple)](https://docs.xbox.com/fr/build/core-features/common/async/async-libraries/async-library-xasync-example-run-gdk-task.md)

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


## Related topics

- [Bibliothèques XAsync pour la programmation de tâches asynchrones](https://docs.xbox.com/fr/build/core-features/common/async/async-libraries/index.md)
- [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)
- [Modèles de contexte de PlayFab CloudScript avec Azure Functions](https://docs.xbox.com/fr/services/playfab/live-service-management/service-gateway/automation/cloudscript-af/CloudScript-af-context.md)
- [Exécuter une tâche d'API du Microsoft Game Development Kit (GDK)](https://docs.xbox.com/fr/build/core-features/common/async/async-libraries/async-library-xasync-example-run-gdk-task.md)
- [Performances des jeux dans les environnements à processeurs hybrides](https://docs.xbox.com/fr/build/gdk-and-engines/guides/hybrid-cpu-performance.md)
