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

# XAsyncCompletionRoutine

> XAsyncCompletionRoutine

# XAsyncCompletionRoutine

非同期呼び出しの完了コールバックを表します。

## Syntax

```cpp theme={null}
void XAsyncCompletionRoutine(  
         XAsyncBlock* asyncBlock  
)  
```

### Parameters

*asyncBlock*   \_Inout\_\
型: [XAsyncBlock\*](https://docs.xbox.com/ja-jp/reference/system/xasync/structs/xasyncblock.md)

完了コールバック用の [XAsyncBlock](https://docs.xbox.com/ja-jp/reference/system/xasync/structs/xasyncblock.md) へのポインター。

### Return value

型: void

## Remarks

非同期呼び出しに *完了コールバック* を提供するために、`XAsyncCompletionRoutine` ポインターを必要に応じて指定できます。完了コールバックとは、非同期呼び出しの完了後に実行されるコールバック関数です。`XAsyncCompletionRoutine` ポインターは、非同期呼び出し用の [XAsyncBlock](https://docs.xbox.com/ja-jp/reference/system/xasync/structs/xasyncblock.md) 構造体の `callback` メンバーに指定できます。

通常、完了コールバックは別のスレッドで非同期呼び出しの結果を処理します。完了コールバックは、非同期呼び出しが完了したときに呼び出されるコールバック関数を表します。コールバック関数は `XAsyncBlock` ポインターを受け取り、それを使用して後でコールバック関数の結果を取得します。

完了コールバックを指定した場合、[XAsyncGetStatus](https://docs.xbox.com/ja-jp/reference/system/xasync/functions/xasyncgetstatus.md) 関数を使用して、完了コールバックが完了したかどうかを定期的に確認できます。その後、必要に応じて [XAsyncGetResult](https://docs.xbox.com/ja-jp/reference/system/xasyncprovider/functions/xasyncgetresult.md) および [XAsyncGetResultSize](https://docs.xbox.com/ja-jp/reference/system/xasync/functions/xasyncgetresultsize.md) を使用して、完了したタスクから結果を取得します。

非同期呼び出しをキャンセルするために [XAsyncCancel](https://docs.xbox.com/ja-jp/reference/system/xasync/functions/xasynccancel.md) が呼び出された場合でも、完了コールバックは呼び出されます。

非同期呼び出しの結果を取得するには、[XAsyncGetStatus](https://docs.xbox.com/ja-jp/reference/system/xasync/functions/xasyncgetstatus.md)、または完了コールバックの `Get\*Result` メソッドを使用します。非同期呼び出しがキャンセルされた場合、これらのメソッドは `E_ABORT` を返します。`Get\*Result` メソッドを含む非同期プロバイダーの実装パターンの詳細については、[Asynchronous Programming Model](https://docs.xbox.com/ja-jp/build/core-features/common/async/async-programming-model.md) を参照してください。

## Requirements

**ヘッダー:** XAsync.h

**ライブラリ:** xgameruntime.lib

**サポートされているプラットフォーム:** Windows、XBOX One ファミリー本体および XBOX Series 本体

## Conceptual documentation

* [Asynchronous Programming Model](https://docs.xbox.com/ja-jp/build/core-features/common/async/async-programming-model.md)

## See also

[XAsync Members](https://docs.xbox.com/ja-jp/reference/system/xasync/xasync_members.md)\
[XAsyncGetStatus](https://docs.xbox.com/ja-jp/reference/system/xasync/functions/xasyncgetstatus.md)\
[Asynchronous Programming Model](https://docs.xbox.com/ja-jp/build/core-features/common/async/async-programming-model.md)


## Related topics

- [XAsyncCancel](https://docs.xbox.com/ja-jp/reference/system/xasync/functions/xasynccancel.md)
- [非同期プログラミング モデル](https://docs.xbox.com/ja-jp/build/core-features/common/async/async-programming-model.md)
- [XAsync (API の内容)](https://docs.xbox.com/ja-jp/reference/system/xasync/xasync_members.md)
- [XAsyncBlock](https://docs.xbox.com/ja-jp/reference/system/xasync/structs/xasyncblock.md)
- [WebSocketCompletionResult](https://docs.xbox.com/ja-jp/reference/live/httpclient/httpclient/structs/websocketcompletionresult.md)
