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

# 设置调用方法示例

> 将 XAsyncBegin 及其提供程序回调包装到可重用的方法中（与异步 GDK 函数使用的模式相同），并保持 DoWork 情况的通用性。

本主题提供了一个如何为自定义提供程序设置调用方法的示例。在使用自定义异步提供程序时，最好使用调用方法，以便提供程序可以按需重用。

```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;
}
```

此示例展示了所有异步 Microsoft Game Development Kit (GDK) 方法的实现方式，允许提供程序的重用。如果 `DoWork` 分支非常具体，它就会成为一个专用的异步函数。要使其通用化，可以让 `DoWork` 分支以某种方式可自定义。

## 参考 API 文档

* [XAsyncProvider (API 内容)](https://docs.xbox.com/zh-CN/reference/system/xasyncprovider/xasyncprovider_members.md)

## 另请参阅

[XAsyncProvider 库概述](https://docs.xbox.com/zh-CN/build/core-features/common/async/async-libraries/async-library-xasyncprovider.md)

[设置自定义提供程序（示例）](https://docs.xbox.com/zh-CN/build/core-features/common/async/async-libraries/async-library-xasyncprovider-example-setup-custom-provider.md)

[设置返回数据（示例）](https://docs.xbox.com/zh-CN/build/core-features/common/async/async-libraries/async-library-xasyncprovider-example-setup-return-data.md)

[设置可取消性（示例）](https://docs.xbox.com/zh-CN/build/core-features/common/async/async-libraries/async-library-xasyncprovider-example-setup-cancelability.md)

[XAsyncProvider](https://docs.xbox.com/zh-CN/reference/system/xasyncprovider/xasyncprovider_members.md)


## Related topics

- [用于异步任务编程的 XAsync 库](https://docs.xbox.com/zh-CN/build/core-features/common/async/async-libraries/index.md)
- [设置可取消性示例](https://docs.xbox.com/zh-CN/build/core-features/common/async/async-libraries/async-library-xasyncprovider-example-setup-cancelability.md)
- [设置返回数据示例](https://docs.xbox.com/zh-CN/build/core-features/common/async/async-libraries/async-library-xasyncprovider-example-setup-return-data.md)
- [XAsyncProvider 库概述](https://docs.xbox.com/zh-CN/build/core-features/common/async/async-libraries/async-library-xasyncprovider.md)
- [IXtfConsoleControlClient（接口内容）](https://docs.xbox.com/zh-CN/reference/tools/xtf/xtfconsolecontrol/interfaces/IXtfConsoleControlClient/ixtfconsolecontrolclient.md)
