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

# XAsyncProvider 库概述

> XAsyncProvider 控制异步任务的运行方式，将 XAsyncBlock 回调加入任务队列，处理可取消性，并设置结果缓冲区。

本主题描述了 [XAsyncProvider](https://docs.xbox.com/zh-CN/reference/system/xasyncprovider/xasyncprovider_members.md) 库的用途。它是三个异步库中最高级的一个，处理任务的运行方式。例如，`XAsyncProvider` 管理接收 [XAsyncBlock](https://docs.xbox.com/zh-CN/reference/system/xasync/structs/xasyncblock.md) 并将回调入队到任意任务队列的实际行为，处理可取消性，并设置结果缓冲区。

通常，`XAsyncProvider` 库是可选的，大多数情况下不需要，因为通常已经提供了提供程序。不过，当需要更高级的行为时可以使用该库，例如[以 Microsoft Game Development Kit (GDK) 风格创建 API](https://docs.xbox.com/zh-CN/build/core-features/common/async/async-libraries/async-library-xasyncprovider-example-setup-invocation-methods.md) 和[允许异步任务可取消](https://docs.xbox.com/zh-CN/build/core-features/common/async/async-libraries/async-library-xasyncprovider-example-setup-cancelability.md)。

#### 异步提供程序回调库

此库的大部分行为都围绕传递给 [XAsyncBegin](https://docs.xbox.com/zh-CN/reference/system/xasyncprovider/functions/xasyncbegin.md) 函数的异步提供程序回调的实现展开。该回调代表异步调用从开始到结束的整个流程，并处理沿途的不同状态变化。以下屏幕截图展示了提供程序处理任务的简化示意图。

![提供程序处理任务的简化示意图截图](https://mintcdn.com/microsoft-4404708b/sIrPFR_ir_sNKVEv/images/gdk/features/common/async_provider_diagram.png?fit=max\&auto=format\&n=sIrPFR_ir_sNKVEv\&q=85\&s=7ebe8812b5a7a51d77b5544ee3a8be93)

## 参考 API 文档

* [XAsyncProvider (API 内容)](https://docs.xbox.com/zh-CN/reference/system/xasyncprovider/xasyncprovider_members.md)
  * 函数
    * [XAsyncBegin](https://docs.xbox.com/zh-CN/reference/system/xasyncprovider/functions/xasyncbegin.md)
* [xasync (API 内容)](https://docs.xbox.com/zh-CN/reference/system/xasync/xasync_members.md)
  * 结构体
    * [XAsyncBlock](https://docs.xbox.com/zh-CN/reference/system/xasync/structs/xasyncblock.md)

## 另请参阅

[设置自定义提供程序（示例）](https://docs.xbox.com/zh-CN/build/core-features/common/async/async-libraries/async-library-xasyncprovider-example-setup-custom-provider.md)

[设置调用方法（示例）](https://docs.xbox.com/zh-CN/build/core-features/common/async/async-libraries/async-library-xasyncprovider-example-setup-invocation-methods.md)

[设置返回数据（示例）](https://docs.xbox.com/zh-CN/build/core-features/common/async/async-libraries/async-library-xasyncprovider-example-setup-return-data.md)

[设置可取消性（示例）](https://docs.xbox.com/zh-CN/build/core-features/common/async/async-libraries/async-library-xasyncprovider-example-setup-cancelability.md)

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


## Related topics

- [XAsyncProvider（API 内容）](https://docs.xbox.com/zh-CN/reference/system/xasyncprovider/xasyncprovider_members.md)
- [XAsyncBlock](https://docs.xbox.com/zh-CN/reference/system/xasync/structs/xasyncblock.md)
- [XAsyncBegin](https://docs.xbox.com/zh-CN/reference/system/xasyncprovider/functions/xasyncbegin.md)
- [设置可取消性示例](https://docs.xbox.com/zh-CN/build/core-features/common/async/async-libraries/async-library-xasyncprovider-example-setup-cancelability.md)
- [设置调用方法示例](https://docs.xbox.com/zh-CN/build/core-features/common/async/async-libraries/async-library-xasyncprovider-example-setup-invocation-methods.md)
