> ## 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 de la API del Microsoft Game Development Kit

> Ejemplo de ejecución de una tarea de la API del Microsoft Game Development Kit

En este tema se proporciona un ejemplo de cómo ejecutar una tarea de la API del Microsoft Game Development Kit (GDK). Las funciones asincrónicas de la API del Microsoft Game Development Kit (GDK) implementan internamente la devolución de llamada de trabajo. Sin embargo, se siguen ejecutando según lo indicado por la cola de tareas especificada en el
bloque asincrónico. Para ejecutar estos métodos se requiere el bloque asincrónico y
los parámetros que necesite la API.

```c++ theme={null}
// Set up the async block and completion callback.
XAsyncBlock* async = new XAsyncBlock{};
async->queue = taskQueue;
async->context = nullptr;
async->callback = [](XAsyncBlock* async)
{
    XUserHandle newUser = nullptr;
    HRESULT result = XUserAddResult(async, &newUser);
    // Handle the completion callback.
    delete async;
};

// Start the async call.
HRESULT hr = XUserAddAsync(XUserAddOptions::None, async);
if (FAILED(hr))
{
    delete async;
}
```

Este código no difiere mucho del código para [ejecutar tareas genéricas](/build/core-features/common/async/async-libraries/async-library-xasync-example-run-simple-task).
En lugar de usar [XAsyncRun](/reference/system/xasync/functions/xasyncrun) con una devolución de llamada de trabajo, se llama
a la API que se quiere usar. El bloque asincrónico se configura
de la misma manera. La diferencia es que [XUserAddAsync](/reference/system/xuser/functions/xuseraddasync)
tiene datos que se deben recuperar de la llamada, lo que se hace en la
devolución de llamada de finalización con [XUserAddResult](/reference/system/xuser/functions/xuseraddresult).

## Documentación de referencia de la API

* [XAsync (contenido de la API)](/reference/system/xasync/xasync_members)
  * Funciones
    * [XAsyncRun](/reference/system/xasync/functions/xasyncrun)
* [xuser (contenido de la API)](/reference/system/xuser/xuser_members)
  * Funciones
    * [XUserAddAsync](/reference/system/xuser/functions/xuseraddasync)
    * [XUserAddResult](/reference/system/xuser/functions/xuseraddresult)

## 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 simple (ejemplo)](/build/core-features/common/async/async-libraries/async-library-xasync-example-run-simple-task)

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


## Related topics

- [Usuarios y dispositivos de entrada](/es/build/core-features/common/user/users-input-devices.md)
- [Ejemplo de ejecución de una tarea simple](/es/build/core-features/common/async/async-libraries/async-library-xasync-example-run-simple-task.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)
- [Bibliotecas XAsync para la programación de tareas asincrónicas](/es/build/core-features/common/async/async-libraries/index.md)
- [Información general de la biblioteca XAsync](/es/build/core-features/common/async/async-libraries/async-library-xasync.md)
