> ## 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/zh-TW/reference/system/xasync/xasync_members.md) 程式庫提供定義非同步工作及其回呼的方法和資料。主要的非同步基本型別 [XAsyncBlock](https://docs.xbox.com/zh-TW/reference/system/xasync/structs/xasyncblock.md) 即定義於此程式庫中。它是
所有非同步工作的必要項目。

除了非同步區塊之外，此程式庫還提供用於[啟動基本非同步呼叫](https://docs.xbox.com/zh-TW/reference/system/xasync/functions/xasyncrun.md)、[取得非同步工作狀態](https://docs.xbox.com/zh-TW/reference/system/xasync/functions/xasyncgetstatus.md)以及[嘗試取消工作](https://docs.xbox.com/zh-TW/reference/system/xasync/functions/xasynccancel.md)的方法。

## XAsyncBlock

[XAsyncBlock](https://docs.xbox.com/zh-TW/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/zh-TW/reference/system/xasync/xasync_members.md)
  * 函式
    * [xasyncrun](https://docs.xbox.com/zh-TW/reference/system/xasync/functions/xasyncrun.md)
    * [xasyncgetstatus](https://docs.xbox.com/zh-TW/reference/system/xasync/functions/xasyncgetstatus.md)
    * [xasynccancel](https://docs.xbox.com/zh-TW/reference/system/xasync/functions/xasynccancel.md)
  * 結構
    * [XAsyncBlock](https://docs.xbox.com/zh-TW/reference/system/xasync/structs/xasyncblock.md)

## 另請參閱

[設定非同步工作](https://docs.xbox.com/zh-TW/build/core-features/common/async/async-libraries/async-library-xasync-example-setup-async-task.md)
[執行簡單工作](https://docs.xbox.com/zh-TW/build/core-features/common/async/async-libraries/async-library-xasync-example-run-simple-task.md)
[執行 Microsoft Game Development Kit API 工作](https://docs.xbox.com/zh-TW/build/core-features/common/async/async-libraries/async-library-xasync-example-run-gdk-task.md)
[XAsync 系統 API 內容](https://docs.xbox.com/zh-TW/reference/system/xasync/xasync_members.md)


## Related topics

- [XAsyncBlock](https://docs.xbox.com/zh-TW/reference/system/xasync/structs/xasyncblock.md)
- [XAsync (API 內容)](https://docs.xbox.com/zh-TW/reference/system/xasync/xasync_members.md)
- [XAsyncCancel](https://docs.xbox.com/zh-TW/reference/system/xasync/functions/xasynccancel.md)
- [XAsyncGetStatus](https://docs.xbox.com/zh-TW/reference/system/xasync/functions/xasyncgetstatus.md)
- [XAsyncRun](https://docs.xbox.com/zh-TW/reference/system/xasync/functions/xasyncrun.md)
