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

# 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\*](/pt-BR/reference/system/xasync/structs/xasyncblock)

Um ponteiro para o [XAsyncBlock](/pt-BR/reference/system/xasync/structs/xasyncblock) 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](/pt-BR/reference/system/xasync/structs/xasyncblock) 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](/pt-BR/reference/system/xasync/functions/xasyncgetstatus) e, em seguida, usar [XAsyncGetResult](/pt-BR/reference/system/xasyncprovider/functions/xasyncgetresult) e [XAsyncGetResultSize](/pt-BR/reference/system/xasync/functions/xasyncgetresultsize) conforme necessário para obter os resultados da tarefa concluída.

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

Use [XAsyncGetStatus](/pt-BR/reference/system/xasync/functions/xasyncgetstatus) 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](/pt-BR/build/core-features/common/async/async-programming-model).

## 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](/pt-BR/build/core-features/common/async/async-programming-model)

## Confira também

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


## Related topics

- [XAsyncCompletionRoutine](/reference/system/xasync/functions/xasynccompletionroutine.md)
- [XAsyncCancel](/reference/system/xasync/functions/xasynccancel.md)
- [XAsync](/reference/system/xasync/xasync_members.md)
- [XAsyncBlock](/reference/system/xasync/structs/xasyncblock.md)
- [Asynchronous Programming Model](/build/core-features/common/async/async-programming-model.md)
