> ## 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-TW/reference/system/xasyncprovider/xasyncprovider_members.md)

## 另請參閱

[XAsyncProvider 程式庫概觀](https://docs.xbox.com/zh-TW/build/core-features/common/async/async-libraries/async-library-xasyncprovider.md)

[設定自訂提供者 (範例)](https://docs.xbox.com/zh-TW/build/core-features/common/async/async-libraries/async-library-xasyncprovider-example-setup-custom-provider.md)

[設定傳回資料 (範例)](https://docs.xbox.com/zh-TW/build/core-features/common/async/async-libraries/async-library-xasyncprovider-example-setup-return-data.md)

[設定可取消性 (範例)](https://docs.xbox.com/zh-TW/build/core-features/common/async/async-libraries/async-library-xasyncprovider-example-setup-cancelability.md)

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


## Related topics

- [用於非同步工作程式設計的 XAsync 程式庫](https://docs.xbox.com/zh-TW/build/core-features/common/async/async-libraries/index.md)
- [設定傳回資料範例](https://docs.xbox.com/zh-TW/build/core-features/common/async/async-libraries/async-library-xasyncprovider-example-setup-return-data.md)
- [設定可取消性範例](https://docs.xbox.com/zh-TW/build/core-features/common/async/async-libraries/async-library-xasyncprovider-example-setup-cancelability.md)
- [設定自訂提供者範例](https://docs.xbox.com/zh-TW/build/core-features/common/async/async-libraries/async-library-xasyncprovider-example-setup-custom-provider.md)
- [XAsyncProvider 程式庫概觀](https://docs.xbox.com/zh-TW/build/core-features/common/async/async-libraries/async-library-xasyncprovider.md)
