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

# XAsyncCompletionRoutine

> XAsyncCompletionRoutine

# XAsyncCompletionRoutine

Representa o retorno de chamada de conclusão de uma chamada assíncrona.

## Sintaxe

```cpp theme={null}
void XAsyncCompletionRoutine(  
         XAsyncBlock* asyncBlock  
)  
```

### Parâmetros

*asyncBlock*   \_Inout\_\
Tipo: [XAsyncBlock\*](https://docs.xbox.com/pt-BR/reference/system/xasync/structs/xasyncblock.md)

Um ponteiro para o [XAsyncBlock](https://docs.xbox.com/pt-BR/reference/system/xasync/structs/xasyncblock.md) do retorno de chamada de conclusão.

### Valor retornado

Tipo: void

## Comentários

Opcionalmente, você pode especificar um ponteiro `XAsyncCompletionRoutine` para fornecer um *retorno de chamada de conclusão* para uma chamada assíncrona. Um retorno de chamada de conclusão é uma função de retorno de chamada executada após a conclusão de uma chamada assíncrona. Você pode especificar um ponteiro `XAsyncCompletionRoutine` no membro `callback` de uma estrutura [XAsyncBlock](https://docs.xbox.com/pt-BR/reference/system/xasync/structs/xasyncblock.md) para uma chamada assíncrona.

Normalmente, um retorno de chamada de conclusão processa os resultados de uma chamada assíncrona em outro thread. O retorno de chamada de conclusão representa uma função de retorno de chamada que é invocada quando a chamada assíncrona é concluída. A função de retorno de chamada recebe um ponteiro `XAsyncBlock`, que é usado posteriormente para obter os resultados da função de retorno de chamada.

Se você especificar um retorno de chamada de conclusão, poderá verificar periodicamente se ele foi concluído usando a função [XAsyncGetStatus](https://docs.xbox.com/pt-BR/reference/system/xasync/functions/xasyncgetstatus.md) e, em seguida, usar [XAsyncGetResult](https://docs.xbox.com/pt-BR/reference/system/xasyncprovider/functions/xasyncgetresult.md) e [XAsyncGetResultSize](https://docs.xbox.com/pt-BR/reference/system/xasync/functions/xasyncgetresultsize.md) conforme necessário para obter os resultados da tarefa concluída.

Um retorno de chamada de conclusão é invocado mesmo que [XAsyncCancel](https://docs.xbox.com/pt-BR/reference/system/xasync/functions/xasynccancel.md) seja invocada para cancelar a chamada assíncrona.

Use [XAsyncGetStatus](https://docs.xbox.com/pt-BR/reference/system/xasync/functions/xasyncgetstatus.md) ou o método `Get\*Result` do retorno de chamada de conclusão para obter os resultados da chamada assíncrona. Se a chamada assíncrona tiver sido cancelada, esses métodos retornarão `E_ABORT`. Para obter mais informações sobre o padrão de implementação de um provedor assíncrono, incluindo o método `Get\*Result`, consulte [Modelo de programação assíncrona](https://docs.xbox.com/pt-BR/build/core-features/common/async/async-programming-model.md).

## Requisitos

**Cabeçalho:** XAsync.h

**Biblioteca:** xgameruntime.lib

**Plataformas compatíveis:** Windows, consoles da família XBOX One e consoles XBOX Series

## Documentação conceitual

* [Modelo de programação assíncrona](https://docs.xbox.com/pt-BR/build/core-features/common/async/async-programming-model.md)

## Confira também

[Membros de XAsync](https://docs.xbox.com/pt-BR/reference/system/xasync/xasync_members.md)\
[XAsyncGetStatus](https://docs.xbox.com/pt-BR/reference/system/xasync/functions/xasyncgetstatus.md)\
[Modelo de programação assíncrona](https://docs.xbox.com/pt-BR/build/core-features/common/async/async-programming-model.md)


## Related topics

- [XAsyncCancel](https://docs.xbox.com/pt-BR/reference/system/xasync/functions/xasynccancel.md)
- [XAsync (conteúdo da API)](https://docs.xbox.com/pt-BR/reference/system/xasync/xasync_members.md)
- [Modelo de programação assíncrona](https://docs.xbox.com/pt-BR/build/core-features/common/async/async-programming-model.md)
- [XAsyncBlock](https://docs.xbox.com/pt-BR/reference/system/xasync/structs/xasyncblock.md)
- [WebSocketCompletionResult](https://docs.xbox.com/pt-BR/reference/live/httpclient/httpclient/structs/websocketcompletionresult.md)
