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

# Exemplo de configuração de tarefa assíncrona

> Saiba como alocar um XAsyncBlock, atribuir a fila de tarefas, o contexto e o retorno de chamada de conclusão e por que um bloco não pode ser compartilhado entre tarefas assíncronas ativas.

Este tópico fornece um exemplo de como configurar tarefas assíncronas. Configure um [XAsyncBlock](https://docs.xbox.com/pt-BR/reference/system/xasync/structs/xasyncblock.md) para a tarefa assíncrona que será executada.
Esses blocos assíncronos não podem ser compartilhados entre várias tarefas assíncronas ativas.
No entanto, eles podem ser reutilizados para uma tarefa diferente depois que a tarefa original for concluída. Um
padrão simples é apenas alocar dinamicamente o bloco para cada chamada
e, em seguida, liberá-lo no retorno de chamada de conclusão quando a chamada for concluída.

```c++ theme={null}
XAsyncBlock* async = new XAsyncBlock{};
async->queue = taskQueue;
async->context = contextData;
async->callback = 
    [](XAsyncBlock* async)
    {
        // The optional completion callback.
        delete async;
    }
```

O parâmetro do retorno de chamada de conclusão é o bloco assíncrono criado anteriormente. Isso permite que o contexto seja acessado e convertido para o tipo adequado para uso tanto como entrada quanto como saída, se você quiser.

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

* [XAsync (conteúdo da API)](https://docs.xbox.com/pt-BR/reference/system/xasync/xasync_members.md)
  * Estruturas
    * [XAsyncBlock](https://docs.xbox.com/pt-BR/reference/system/xasync/structs/xasyncblock.md)

## Consulte também

[Visão geral da biblioteca XAsync](https://docs.xbox.com/pt-BR/build/core-features/common/async/async-libraries/async-library-xasync.md)

[Executar tarefa simples (exemplo)](https://docs.xbox.com/pt-BR/build/core-features/common/async/async-libraries/async-library-xasync-example-run-simple-task.md)

[Executar tarefa de API do Microsoft Game Development Kit (GDK) (exemplo)](https://docs.xbox.com/pt-BR/build/core-features/common/async/async-libraries/async-library-xasync-example-run-gdk-task.md)

[XAsync](https://docs.xbox.com/pt-BR/reference/system/xasync/xasync_members.md)


## Related topics

- [Bibliotecas XAsync para programação de tarefas assíncronas](https://docs.xbox.com/pt-BR/build/core-features/common/async/async-libraries/index.md)
- [Exemplo de configuração de provedor personalizado](https://docs.xbox.com/pt-BR/build/core-features/common/async/async-libraries/async-library-xasyncprovider-example-setup-custom-provider.md)
- [Exemplo de execução de tarefa simples](https://docs.xbox.com/pt-BR/build/core-features/common/async/async-libraries/async-library-xasync-example-run-simple-task.md)
- [Design da fila de tarefas assíncronas](https://docs.xbox.com/pt-BR/build/core-features/common/async/async-task-queue-design.md)
- [Wrapper genérico de tarefa assíncrona](https://docs.xbox.com/pt-BR/build/core-features/common/async/async-task-function-example.md)
