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

# 呼び出しメソッドのセットアップ例

> 非同期 GDK 関数と同じパターンで、XAsyncBegin とそのプロバイダー コールバックを再利用可能なメソッドにラップし、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/ja-jp/reference/system/xasyncprovider/xasyncprovider_members.md)

## 関連項目

[XAsyncProvider ライブラリの概要](https://docs.xbox.com/ja-jp/build/core-features/common/async/async-libraries/async-library-xasyncprovider.md)

[カスタム プロバイダーのセットアップ (例)](https://docs.xbox.com/ja-jp/build/core-features/common/async/async-libraries/async-library-xasyncprovider-example-setup-custom-provider.md)

[戻りデータのセットアップ (例)](https://docs.xbox.com/ja-jp/build/core-features/common/async/async-libraries/async-library-xasyncprovider-example-setup-return-data.md)

[キャンセル可能性のセットアップ (例)](https://docs.xbox.com/ja-jp/build/core-features/common/async/async-libraries/async-library-xasyncprovider-example-setup-cancelability.md)

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


## Related topics

- [非同期タスク プログラミング向け XAsync ライブラリ](https://docs.xbox.com/ja-jp/build/core-features/common/async/async-libraries/index.md)
- [戻りデータのセットアップ例](https://docs.xbox.com/ja-jp/build/core-features/common/async/async-libraries/async-library-xasyncprovider-example-setup-return-data.md)
- [キャンセル可能性のセットアップ例](https://docs.xbox.com/ja-jp/build/core-features/common/async/async-libraries/async-library-xasyncprovider-example-setup-cancelability.md)
- [XAsyncProvider ライブラリの概要](https://docs.xbox.com/ja-jp/build/core-features/common/async/async-libraries/async-library-xasyncprovider.md)
- [非同期タスクのセットアップ例](https://docs.xbox.com/ja-jp/build/core-features/common/async/async-libraries/async-library-xasync-example-setup-async-task.md)
