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

# XAsyncOp

> XAsyncOp

# XAsyncOp

Représente un code d'opération pour un fournisseur asynchrone.

## Syntaxe

```cpp theme={null}
enum class XAsyncOp  : uint32_t  
{  
    Begin,  
    DoWork,  
    GetResult,  
    Cancel,  
    Cleanup  
}  
```

## Constantes

| Constante | Description |
| - | - |
| Begin | Le fournisseur asynchrone est appelé avec ce code d'opération lorsque [XAsyncBegin](/fr/reference/system/xasyncprovider/functions/xasyncbegin) est appelé.<br />Si ce code d'opération est implémenté, le fournisseur asynchrone doit démarrer son travail asynchrone, soit en appelant [XAsyncSchedule](/fr/reference/system/xasyncprovider/functions/xasyncschedule), soit en démarrant un processus asynchrone externe, comme des E/S avec chevauchement.<br /> **REMARQUE** Le travail asynchrone effectué pour ce code d'opération ne doit pas bloquer le thread. |
| DoWork | Le fournisseur asynchrone est appelé avec ce code d'opération lorsque [XAsyncSchedule](/fr/reference/system/xasyncprovider/functions/xasyncschedule) a été appelé pour planifier du travail.<br />Si ce code d'opération est implémenté, le fournisseur asynchrone doit effectuer son travail asynchrone, puis appeler [XAsyncComplete](/fr/reference/system/xasyncprovider/functions/xasynccomplete) en spécifiant la taille de la charge utile de données dans *requiredBufferSize*. Si du travail supplémentaire doit être effectué, le fournisseur asynchrone peut le planifier, puis appeler `XAsyncComplete` en spécifiant le code d'erreur E\_PENDING dans *result*. |
| GetResult | Le fournisseur asynchrone est appelé avec ce code d'opération après la fin d'un appel asynchrone, lorsque l'utilisateur doit obtenir la charge utile de données de résultat.<br />Les valeurs des champs *buffer* et *bufferSize* de [XAsyncProviderData](/fr/reference/system/xasyncprovider/structs/xasyncproviderdata) ont été validées. |
| Cancel | Le fournisseur asynchrone est appelé avec ce code d'opération lorsque le travail asynchrone doit être annulé.<br />Le fournisseur asynchrone doit annuler tout le travail asynchrone, puis appeler [XAsyncComplete](/fr/reference/system/xasyncprovider/functions/xasynccomplete) en spécifiant le code d'erreur E\_ABORT dans *result*. |
| Cleanup | Le fournisseur asynchrone est appelé avec ce code d'opération lorsque l'appel asynchrone est terminé ou annulé et que les données du contexte peuvent être nettoyées. |

## Remarques

La fonction de rappel [XAsyncProvider](/fr/reference/system/xasyncprovider/functions/xasyncprovider) d'un fournisseur asynchrone est appelée à plusieurs reprises, et ce que ce fournisseur asynchrone doit faire pour chaque appel est déterminé par le code d'opération spécifié pour chaque appel. `XAsyncOp` représente les codes d'opération qui peuvent être implémentés par un fournisseur asynchrone.\
Un fournisseur asynchrone ne doit implémenter que les codes d'opération de `XAsyncOp` nécessaires pour effectuer le travail asynchrone. Par exemple, un fournisseur asynchrone qui effectue des E/S asynchrones non annulables ne nécessitant pas de nettoyage doit uniquement implémenter `XAsyncOp::GetResult`.

Pour obtenir un exemple de fournisseur asynchrone qui implémente les codes d'opération `DoWork`, `GetResult` et `Cleanup` de `XAsyncOp`, consultez la section « Bibliothèque asynchrone » de [Modèle de programmation asynchrone](/fr/build/core-features/common/async/async-programming-model#heading-7).

## Configuration requise

**En-tête :** XAsyncProvider.h

**Plateformes prises en charge :** Windows, consoles de la famille XBOX One et consoles XBOX Series

## Voir aussi

[XAsyncProviderData](/fr/reference/system/xasyncprovider/structs/xasyncproviderdata)\
[Membres XAsyncProvider](/fr/reference/system/xasyncprovider/xasyncprovider_members)\
[Modèle de programmation asynchrone](/fr/build/core-features/common/async/async-programming-model)


## Related topics

- [XAsyncOp](/ja-jp/reference/system/xasyncprovider/enums/xasyncop.md)
- [XAsyncProvider function](/reference/system/xasyncprovider/functions/xasyncprovider.md)
- [AsyncProviderData](/reference/system/xasyncprovider/structs/xasyncproviderdata.md)
- [XAsyncBegin](/reference/system/xasyncprovider/functions/xasyncbegin.md)
- [Función XAsyncProvider](/es/reference/system/xasyncprovider/functions/xasyncprovider.md)
