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

# Ejemplo de ejecución de una tarea simple

> Ejemplo de ejecución de una tarea simple

En este tema se proporciona un ejemplo de cómo ejecutar una tarea de usuario simple. Las tareas simples se pueden iniciar con la función [XAsyncRun](/reference/system/xasync/functions/xasyncrun).
Esta función toma el bloque asincrónico como entrada y luego requiere
implementar la devolución de llamada de trabajo como entrada de tipo functor o lambda. Recuerde
que el bloque asincrónico especifica la cola de tareas que se va a usar y la devolución de llamada
de finalización opcional.

```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;
    });
```

Este ejemplo usa `XAsyncRun`para iniciar una tarea asincrónica simple
y personalizada. El bloque asincrónico contiene la cola de tareas que se va a usar y
la devolución de llamada de finalización.
`XAsyncRun` requiere una devolución de llamada de trabajo, y
esta tiene un valor devuelto. Este se devuelve después mediante una llamada a
[XAsyncGetStatus](/reference/system/xasync/functions/xasyncgetstatus). Internamente, `XAsyncRun`
tiene configurado un proveedor asincrónico simple para controlar la puesta en cola de la
devolución de llamada de trabajo especificada, la puesta en cola de la devolución de llamada de finalización del
bloque asincrónico y otros cambios de estado del proceso. Esto significa que no
se necesita más código para ejecutar tareas asincrónicas simples: solo hay que configurar el
bloque asincrónico y llamar a `XAsyncRun`.

## Documentación de referencia de la API

* [XAsync (contenido de la API)](/reference/system/xasync/xasync_members)
  * Funciones
    * [XAsyncRun](/reference/system/xasync/functions/xasyncrun)
    * [XAsyncGetStatus](/reference/system/xasync/functions/xasyncgetstatus)

## Consulte también

[Información general de la biblioteca XAsync](/build/core-features/common/async/async-libraries/async-library-xasync)

[Configuración de una tarea asincrónica (ejemplo)](/build/core-features/common/async/async-libraries/async-library-xasync-example-setup-async-task)

[Ejecución de una tarea de la API del Microsoft Game Development Kit (GDK) (ejemplo)](/build/core-features/common/async/async-libraries/async-library-xasync-example-run-gdk-task)

[XAsync](/reference/system/xasync/xasync_members)


## Related topics

- [Bibliotecas XAsync para la programación de tareas asincrónicas](/es/build/core-features/common/async/async-libraries/index.md)
- [Ejemplo de configuración de una tarea asincrónica](/es/build/core-features/common/async/async-libraries/async-library-xasync-example-setup-async-task.md)
- [Ejemplo de ejecución de una tarea de la API del Microsoft Game Development Kit](/es/build/core-features/common/async/async-libraries/async-library-xasync-example-run-gdk-task.md)
- [Ejemplo de limpieza de una cola de tareas](/es/build/core-features/common/async/async-libraries/async-library-xtaskqueue-example-cleanup-task-queue.md)
- [Ejemplo de creación de una cola de tareas](/es/build/core-features/common/async/async-libraries/async-library-xtaskqueue-example-create-task-queue.md)
