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

# Visão geral da biblioteca XAsync

> A biblioteca XAsync define a estrutura XAsyncBlock exigida por toda tarefa assíncrona, além de funções para iniciar chamadas, verificar o status e cancelar tarefas.

A biblioteca [XAsync](https://docs.xbox.com/pt-BR/reference/system/xasync/xasync_members.md) fornece métodos e dados que definem tarefas assíncronas e seus retornos de chamada. O principal primitivo assíncrono, [XAsyncBlock](https://docs.xbox.com/pt-BR/reference/system/xasync/structs/xasyncblock.md), é definido nessa biblioteca. Ele é um
requisito para todas as tarefas assíncronas.

Além do bloco assíncrono, essa biblioteca fornece métodos para [iniciar chamadas assíncronas básicas](https://docs.xbox.com/pt-BR/reference/system/xasync/functions/xasyncrun.md), [obter o status da tarefa assíncrona](https://docs.xbox.com/pt-BR/reference/system/xasync/functions/xasyncgetstatus.md) e [tentar cancelar tarefas](https://docs.xbox.com/pt-BR/reference/system/xasync/functions/xasynccancel.md).

## XAsyncBlock

O [XAsyncBlock](https://docs.xbox.com/pt-BR/reference/system/xasync/structs/xasyncblock.md) é o principal primitivo assíncrono, que contém membros usados para implementar o retorno de chamada de conclusão, fornecer dados ao retorno de chamada de conclusão e escolher uma fila de tarefas na qual executar.

O bloco assíncrono também contém dados privados usados internamente pelo sistema para o comportamento em tempo de execução. Como resultado, esse bloco não pode ser compartilhado entre várias tarefas ativas. O sistema usa esses dados para identificar a chamada assíncrona enquanto ela está ativa.

```c++ theme={null}
struct XAsyncBlock
{
    /// <summary>
    /// The queue to queue the call on.
    /// </summary>
    XTaskQueueHandle queue;
    
    /// <summary>
    /// Optional context pointer to pass to the callback.
    /// </summary>
    void* context;
    
    /// <summary>
    /// Optional callback that is invoked when the call completes.
    /// </summary>
    XAsyncCompletionRoutine* callback;
    
    /// <summary>
    /// Internal use only.
    /// </summary>
    unsigned char internal[sizeof(void*) * 4];
};
```

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

* [XAsync (conteúdo da API)](https://docs.xbox.com/pt-BR/reference/system/xasync/xasync_members.md)
  * Funções
    * [xasyncrun](https://docs.xbox.com/pt-BR/reference/system/xasync/functions/xasyncrun.md)
    * [xasyncgetstatus](https://docs.xbox.com/pt-BR/reference/system/xasync/functions/xasyncgetstatus.md)
    * [xasynccancel](https://docs.xbox.com/pt-BR/reference/system/xasync/functions/xasynccancel.md)
  * Estruturas
    * [XAsyncBlock](https://docs.xbox.com/pt-BR/reference/system/xasync/structs/xasyncblock.md)

## Consulte também

[Configurar tarefa assíncrona](https://docs.xbox.com/pt-BR/build/core-features/common/async/async-libraries/async-library-xasync-example-setup-async-task.md)
[Executar tarefa simples](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](https://docs.xbox.com/pt-BR/build/core-features/common/async/async-libraries/async-library-xasync-example-run-gdk-task.md)
[Conteúdo da API do sistema XAsync](https://docs.xbox.com/pt-BR/reference/system/xasync/xasync_members.md)


## Related topics

- [XAsyncBlock](https://docs.xbox.com/pt-BR/reference/system/xasync/structs/xasyncblock.md)
- [XAsync (conteúdo da API)](https://docs.xbox.com/pt-BR/reference/system/xasync/xasync_members.md)
- [Visão geral da programação assíncrona (conteúdo)](https://docs.xbox.com/pt-BR/build/core-features/common/async/async-toc.md)
- [XAsyncGetStatus](https://docs.xbox.com/pt-BR/reference/system/xasync/functions/xasyncgetstatus.md)
- [XAsyncCancel](https://docs.xbox.com/pt-BR/reference/system/xasync/functions/xasynccancel.md)
