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

# Información general de la biblioteca XAsyncProvider

> Información general de la biblioteca XAsyncProvider

En este tema se describe el propósito de la biblioteca [XAsyncProvider](/reference/system/xasyncprovider/xasyncprovider_members). Es la más avanzada de las
tres bibliotecas asincrónicas y se ocupa de cómo se ejecutan las tareas. Por ejemplo,
`XAsyncProvider` administra el comportamiento real de tomar un [XAsyncBlock](/reference/system/xasync/structs/xasyncblock)
y poner en cola las devoluciones de llamada en las colas de tareas, controla la capacidad de cancelación
y configura los búferes de resultados.

En general, la biblioteca `XAsyncProvider` es opcional y no se necesita en la mayoría de los casos porque
normalmente ya se proporciona un proveedor. Sin embargo, la biblioteca se puede usar cuando
se necesita un comportamiento más avanzado, como [crear API al estilo del Microsoft Game Development Kit
(GDK)](/build/core-features/common/async/async-libraries/async-library-xasyncprovider-example-setup-invocation-methods) y
[permitir que las tareas asincrónicas se puedan cancelar](/build/core-features/common/async/async-libraries/async-library-xasyncprovider-example-setup-cancelability).

<a id="async_provider_callback" />

#### Biblioteca de devolución de llamada de proveedor asincrónico

La mayor parte del comportamiento de esta biblioteca se centra en la
implementación de una devolución de llamada de proveedor asincrónico que se pasa a la
función [XAsyncBegin](/reference/system/xasyncprovider/functions/xasyncbegin). Esta devolución de llamada representa el flujo
completo de una llamada asincrónica de principio a fin y controla los diferentes
cambios de estado a lo largo del proceso. En la captura de pantalla siguiente se muestra una ilustración simplificada de un proveedor controlando una tarea.

<img src="https://mintcdn.com/microsoft-4404708b/sIrPFR_ir_sNKVEv/images/gdk/features/common/async_provider_diagram.png?fit=max&auto=format&n=sIrPFR_ir_sNKVEv&q=85&s=7ebe8812b5a7a51d77b5544ee3a8be93" alt="Captura de pantalla de una ilustración simplificada de un proveedor controlando una tarea" width="662" height="355" data-path="images/gdk/features/common/async_provider_diagram.png" />

## Documentación de referencia de la API

* [XAsyncProvider (contenido de la API)](/reference/system/xasyncprovider/xasyncprovider_members)
  * Funciones
    * [XAsyncBegin](/reference/system/xasyncprovider/functions/xasyncbegin)
* [xasync (contenido de la API)](/reference/system/xasync/xasync_members)
  * Estructuras
    * [XAsyncBlock](/reference/system/xasync/structs/xasyncblock)

## Consulte también

[Configuración de un proveedor personalizado (ejemplo)](/build/core-features/common/async/async-libraries/async-library-xasyncprovider-example-setup-custom-provider)

[Configuración de los métodos de invocación (ejemplo)](/build/core-features/common/async/async-libraries/async-library-xasyncprovider-example-setup-invocation-methods)

[Configuración de los datos devueltos (ejemplo)](/build/core-features/common/async/async-libraries/async-library-xasyncprovider-example-setup-return-data)

[Configuración de la capacidad de cancelación (ejemplo)](/build/core-features/common/async/async-libraries/async-library-xasyncprovider-example-setup-cancelability)

[XAsyncProvider](/reference/system/xasyncprovider/xasyncprovider_members)


## Related topics

- [XAsyncProvider](/es/reference/system/xasyncprovider/xasyncprovider_members.md)
- [Ejemplo de configuración de la capacidad de cancelación](/es/build/core-features/common/async/async-libraries/async-library-xasyncprovider-example-setup-cancelability.md)
- [XAsyncBlock](/es/reference/system/xasync/structs/xasyncblock.md)
- [Ejemplo de configuración de los métodos de invocación](/es/build/core-features/common/async/async-libraries/async-library-xasyncprovider-example-setup-invocation-methods.md)
- [XAsyncBegin](/es/reference/system/xasyncprovider/functions/xasyncbegin.md)
