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

# XAsyncOp

> XAsyncOp

# XAsyncOp

Representa un código de operación para un proveedor asincrónico.

## Sintaxis

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

## Constantes

| Constante | Descripción |
| - | - |
| Begin | El proveedor asincrónico se invoca con este código de operación cuando se invoca [XAsyncBegin](https://docs.xbox.com/es/reference/system/xasyncprovider/functions/xasyncbegin.md). Si se implementa este código de operación, el proveedor asincrónico debe iniciar su trabajo asincrónico, ya sea llamando a [XAsyncSchedule](https://docs.xbox.com/es/reference/system/xasyncprovider/functions/xasyncschedule.md) o iniciando un proceso asincrónico externo, como la E/S superpuesta.  **NOTA** El trabajo asincrónico realizado para este código de operación no debe bloquear el subproceso. |
| DoWork | El proveedor asincrónico se invoca con este código de operación cuando se ha llamado a [XAsyncSchedule](https://docs.xbox.com/es/reference/system/xasyncprovider/functions/xasyncschedule.md) para programar trabajo. Si se implementa este código de operación, el proveedor asincrónico debe realizar su trabajo asincrónico y, a continuación, llamar a [XAsyncComplete](https://docs.xbox.com/es/reference/system/xasyncprovider/functions/xasynccomplete.md), especificando el tamaño de la carga de datos en *requiredBufferSize*. Si es necesario realizar trabajo adicional, el proveedor asincrónico puede programarlo y luego llamar a `XAsyncComplete`, especificando el código de error E\_PENDING en *result*. |
| GetResult | El proveedor asincrónico se invoca con este código de operación después de que se complete una llamada asincrónica y el usuario necesite obtener la carga de datos resultante. Los valores de los campos *buffer* y *bufferSize* de [XAsyncProviderData](https://docs.xbox.com/es/reference/system/xasyncprovider/structs/xasyncproviderdata.md) ya se han validado. |
| Cancel | El proveedor asincrónico se invoca con este código de operación cuando el trabajo asincrónico se debe cancelar. El proveedor asincrónico debe cancelar todo el trabajo asincrónico y, a continuación, llamar a [XAsyncComplete](https://docs.xbox.com/es/reference/system/xasyncprovider/functions/xasynccomplete.md), especificando el código de error E\_ABORT en *result*. |
| Cleanup | El proveedor asincrónico se invoca con este código de operación cuando la llamada asincrónica se completa o se cancela y los datos del contexto se pueden limpiar. |

## Comentarios

La función de devolución de llamada [XAsyncProvider](https://docs.xbox.com/es/reference/system/xasyncprovider/functions/xasyncprovider.md) de un proveedor asincrónico se llama repetidamente, y lo que ese proveedor asincrónico debe hacer en cada llamada viene determinado por el código de operación especificado para cada llamada. `XAsyncOp` representa los códigos de operación que puede implementar un proveedor asincrónico.\
Un proveedor asincrónico solo debe implementar los códigos de operación de `XAsyncOp` necesarios para realizar el trabajo asincrónico. Por ejemplo, un proveedor asincrónico que realiza trabajo de E/S asincrónica no cancelable y que no requiere limpieza solo necesita implementar `XAsyncOp::GetResult`.

Para ver un ejemplo de un proveedor asincrónico que implementa los códigos de operación `DoWork`, `GetResult` y `Cleanup` de `XAsyncOp`, consulte la sección "Async Library" en [Modelo de programación asincrónica](https://docs.xbox.com/es/build/core-features/common/async/async-programming-model.md#heading-7).

## Requisitos

**Encabezado:** XAsyncProvider.h

**Plataformas compatibles:** Windows, consolas de la familia XBOX One y consolas XBOX Series

## Consulte también

[XAsyncProviderData](https://docs.xbox.com/es/reference/system/xasyncprovider/structs/xasyncproviderdata.md)\
[Miembros de XAsyncProvider](https://docs.xbox.com/es/reference/system/xasyncprovider/xasyncprovider_members.md)\
[Modelo de programación asincrónica](https://docs.xbox.com/es/build/core-features/common/async/async-programming-model.md)


## Related topics

- [XAsyncProvider](https://docs.xbox.com/es/reference/system/xasyncprovider/functions/xasyncprovider.md)
- [XAsyncProviderData](https://docs.xbox.com/es/reference/system/xasyncprovider/structs/xasyncproviderdata.md)
- [XAsyncBegin](https://docs.xbox.com/es/reference/system/xasyncprovider/functions/xasyncbegin.md)
- [XAsyncProvider (contenido de la API)](https://docs.xbox.com/es/reference/system/xasyncprovider/xasyncprovider_members.md)
- [XAsyncComplete](https://docs.xbox.com/es/reference/system/xasyncprovider/functions/xasynccomplete.md)
