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

# XAsync ライブラリの概要

> XAsync ライブラリは、すべての非同期タスクに必要な XAsyncBlock 構造体と、呼び出しの開始、状態の確認、タスクのキャンセルを行う関数を定義します。

[XAsync](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) は、このライブラリで定義されています。これはすべての非同期タスクに必須です。

非同期ブロックに加えて、このライブラリでは、[基本的な非同期呼び出しの開始](https://docs.xbox.com/ja-jp/reference/system/xasync/functions/xasyncrun.md)、[非同期タスクの状態取得](https://docs.xbox.com/ja-jp/reference/system/xasync/functions/xasyncgetstatus.md)、および [タスクのキャンセルの試行](https://docs.xbox.com/ja-jp/reference/system/xasync/functions/xasynccancel.md) のためのメソッドが提供されています。

## XAsyncBlock

[XAsyncBlock](https://docs.xbox.com/ja-jp/reference/system/xasync/structs/xasyncblock.md) は主要な非同期プリミティブであり、完了コールバックの実装、完了コールバックへのデータの提供、および実行するタスク キューの選択に使用されるメンバーが含まれます。

非同期ブロックには、システムが実行時の動作のために内部的に使用するプライベート データも含まれます。そのため、このブロックを複数のアクティブなタスク間で共有することはできません。呼び出しがアクティブな間、システムはこのデータを使用して非同期呼び出しを識別します。

```c++ theme={null}
struct XAsyncBlock
{
    /// <summary>
    /// The queue to queue the call on.
    /// </summary>
    XTaskQueueHandle queue;
    
    /// <summary>
    /// Optional context pointer to pass to the callback.
    /// </summary>
    void* context;
    
    /// <summary>
    /// Optional callback that is invoked when the call completes.
    /// </summary>
    XAsyncCompletionRoutine* callback;
    
    /// <summary>
    /// Internal use only.
    /// </summary>
    unsigned char internal[sizeof(void*) * 4];
};
```

## リファレンス API ドキュメント

* [XAsync (API 目次)](https://docs.xbox.com/ja-jp/reference/system/xasync/xasync_members.md)
  * 関数
    * [xasyncrun](https://docs.xbox.com/ja-jp/reference/system/xasync/functions/xasyncrun.md)
    * [xasyncgetstatus](https://docs.xbox.com/ja-jp/reference/system/xasync/functions/xasyncgetstatus.md)
    * [xasynccancel](https://docs.xbox.com/ja-jp/reference/system/xasync/functions/xasynccancel.md)
  * 構造体
    * [XAsyncBlock](https://docs.xbox.com/ja-jp/reference/system/xasync/structs/xasyncblock.md)

## 関連項目

[非同期タスクのセットアップ](https://docs.xbox.com/ja-jp/build/core-features/common/async/async-libraries/async-library-xasync-example-setup-async-task.md)
[単純なタスクの実行](https://docs.xbox.com/ja-jp/build/core-features/common/async/async-libraries/async-library-xasync-example-run-simple-task.md)
[Microsoft Game Development Kit API タスクの実行](https://docs.xbox.com/ja-jp/build/core-features/common/async/async-libraries/async-library-xasync-example-run-gdk-task.md)
[XAsync system API 目次](https://docs.xbox.com/ja-jp/reference/system/xasync/xasync_members.md)


## Related topics

- [非同期タスクのセットアップ例](https://docs.xbox.com/ja-jp/build/core-features/common/async/async-libraries/async-library-xasync-example-setup-async-task.md)
- [Microsoft Game Development Kit (GDK) API タスクの実行](https://docs.xbox.com/ja-jp/build/core-features/common/async/async-libraries/async-library-xasync-example-run-gdk-task.md)
- [単純なタスクの実行例](https://docs.xbox.com/ja-jp/build/core-features/common/async/async-libraries/async-library-xasync-example-run-simple-task.md)
- [非同期プログラミングの概要 (目次)](https://docs.xbox.com/ja-jp/build/core-features/common/async/async-toc.md)
- [XAsyncProvider ライブラリの概要](https://docs.xbox.com/ja-jp/build/core-features/common/async/async-libraries/async-library-xasyncprovider.md)
