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

# Exemplo de execução de tarefa de API do Microsoft Game Development Kit

> Exemplo de execução de tarefa de API do Microsoft Game Development Kit

Este tópico fornece um exemplo de como executar uma tarefa de API do Microsoft Game Development Kit (GDK). As funções assíncronas de API do Microsoft Game Development Kit (GDK) implementam internamente o retorno de chamada de trabalho. No entanto, ele ainda é executado conforme determinado pela fila de tarefas especificada no
bloco assíncrono. A execução desses métodos requer o bloco assíncrono e
quaisquer parâmetros necessários para a 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;
}
```

Esse código não difere muito do código para [executar tarefas genéricas](/pt-BR/build/core-features/common/async/async-libraries/async-library-xasync-example-run-simple-task).
Em vez de usar [XAsyncRun](/pt-BR/reference/system/xasync/functions/xasyncrun) com um retorno de chamada de trabalho, você chama
a API que deseja usar. O bloco assíncrono é configurado
da mesma forma. A diferença é que [XUserAddAsync](/pt-BR/reference/system/xuser/functions/xuseraddasync)
tem dados a serem recuperados da chamada, o que é feito no
retorno de chamada de conclusão com [XUserAddResult](/pt-BR/reference/system/xuser/functions/xuseraddresult).

## Documentação de referência da API

* [XAsync (conteúdo da API)](/pt-BR/reference/system/xasync/xasync_members)
  * Funções
    * [XAsyncRun](/pt-BR/reference/system/xasync/functions/xasyncrun)
* [xuser (conteúdo da API)](/pt-BR/reference/system/xuser/xuser_members)
  * Funções
    * [XUserAddAsync](/pt-BR/reference/system/xuser/functions/xuseraddasync)
    * [XUserAddResult](/pt-BR/reference/system/xuser/functions/xuseraddresult)

## Confira também

[Visão geral da biblioteca XAsync](/pt-BR/build/core-features/common/async/async-libraries/async-library-xasync)

[Configurar tarefa assíncrona (exemplo)](/pt-BR/build/core-features/common/async/async-libraries/async-library-xasync-example-setup-async-task)

[Executar tarefa simples (exemplo)](/pt-BR/build/core-features/common/async/async-libraries/async-library-xasync-example-run-simple-task)

[XAsync](/pt-BR/reference/system/xasync/xasync_members)


## Related topics

- [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)
- [Modelos de usuario del Microsoft Game Development Kit](/es/build/core-features/common/user/gamecore-user-models.md)
- [Herramientas de redes en el Microsoft Game Development Kit](/es/build/console-features/networking/tools/tools-networking-toc.md)
- [Exemplos do GDK](/pt-BR/home/setup-install/samples.md)
- [Documentação de desenvolvimento de jogos XBOX](/pt-BR/index.md)
