> ## 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 métodos de invocação

> Encapsule XAsyncBegin e o retorno de chamada do provedor em um método reutilizável, o mesmo padrão usado pelas funções assíncronas do GDK, e mantenha o caso DoWork genérico.

Este tópico fornece um exemplo de como configurar métodos de invocação para um provedor personalizado. Ao trabalhar com provedores assíncronos personalizados, é melhor usar métodos de
invocação para que o provedor possa ser reutilizado conforme necessário.

```c++ theme={null}
HRESULT CustomProviderMethodAsync(XAsyncBlock* async)
{
    // Set up the context for your method.
    void* context;
    HRESULT hr = XAsyncBegin(async, context, CustomProviderMethodAsync, __FUNCTION__,
        [](XAsyncOp op, const XAsyncProviderData* providerData)
        {
            // Provider cases are handled here.
            return S_OK;
        });
    return hr;
}
```

Este exemplo mostra como todos os métodos assíncronos do Microsoft Game Development Kit (GDK) são implementados e
permite a reutilização do provedor. Se o caso `DoWork` for altamente
específico, ele se tornará uma função assíncrona especializada. Para torná-la
genérica, permita que o caso `DoWork` seja personalizado de alguma forma.

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

* [XAsyncProvider (conteúdo da API)](https://docs.xbox.com/pt-BR/reference/system/xasyncprovider/xasyncprovider_members.md)

## Consulte também

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

[Configurar provedor personalizado (exemplo)](https://docs.xbox.com/pt-BR/build/core-features/common/async/async-libraries/async-library-xasyncprovider-example-setup-custom-provider.md)

[Configurar dados de retorno (exemplo)](https://docs.xbox.com/pt-BR/build/core-features/common/async/async-libraries/async-library-xasyncprovider-example-setup-return-data.md)

[Configurar cancelabilidade (exemplo)](https://docs.xbox.com/pt-BR/build/core-features/common/async/async-libraries/async-library-xasyncprovider-example-setup-cancelability.md)

[XAsyncProvider](https://docs.xbox.com/pt-BR/reference/system/xasyncprovider/xasyncprovider_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 cancelabilidade](https://docs.xbox.com/pt-BR/build/core-features/common/async/async-libraries/async-library-xasyncprovider-example-setup-cancelability.md)
- [Exemplo de configuração de dados de retorno](https://docs.xbox.com/pt-BR/build/core-features/common/async/async-libraries/async-library-xasyncprovider-example-setup-return-data.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)
- [Configuração de segmentos de jogadores](https://docs.xbox.com/pt-BR/services/playfab/player-progression/player-data/player-segment-configuration.md)
