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

# XAsyncRun

> XAsyncRun

# XAsyncRun

异步运行指定的回调函数。

## Syntax

```cpp theme={null}
HRESULT XAsyncRun(  
         XAsyncBlock* asyncBlock,  
         XAsyncWork* work  
)  
```

### Parameters

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

指向用于跟踪异步调用的 [XAsyncBlock](https://docs.xbox.com/zh-CN/reference/system/xasync/structs/xasyncblock.md) 的指针。

*work*   \_In\_\
类型：[XAsyncWork\*](https://docs.xbox.com/zh-CN/reference/system/xasync/functions/xasyncwork.md)

指向要异步运行的回调函数的指针。

### Return value

类型：[HRESULT](https://learn.microsoft.com/openspecs/windows_protocols/ms-erref/0642cb2f-2075-4469-918c-4441e69c548a)

成功时返回 `S_OK`；否则，返回错误代码。有关错误代码列表，请参阅[错误代码](https://docs.xbox.com/zh-CN/reference/errorcodes.md)。

## Remarks

`XAsyncRun` 是一个帮助程序函数，它异步运行 *work* 中指定的回调函数。可以使用 *asyncBlock* 中指定的 `XAsyncBlock` 来取消或获取回调函数的状态。`XAsyncRun` 在内部使用以下 `XAsyncProvider` 函数来运行和跟踪回调函数：

* [XAsyncBegin](https://docs.xbox.com/zh-CN/reference/system/xasyncprovider/functions/xasyncbegin.md)
* [XAsyncComplete](https://docs.xbox.com/zh-CN/reference/system/xasyncprovider/functions/xasynccomplete.md)
* [XAsyncSchedule](https://docs.xbox.com/zh-CN/reference/system/xasyncprovider/functions/xasyncschedule.md)

有关使用 `XAsyncProvider` 和 `XAsyncBlock` 实现自己的异步功能的详细信息，请参阅[异步编程模型](https://docs.xbox.com/zh-CN/build/core-features/common/async/async-programming-model.md)。

## Requirements

**头文件：** XAsync.h

**库：** xgameruntime.lib

**受支持的平台：** Windows、XBOX One 系列主机和 XBOX Series 主机

## Conceptual documentation

* [运行 Microsoft 游戏开发工具包 (GDK) API 任务](https://docs.xbox.com/zh-CN/build/core-features/common/async/async-libraries/async-library-xasync-example-run-gdk-task.md)
* [运行简单任务](https://docs.xbox.com/zh-CN/build/core-features/common/async/async-libraries/async-library-xasync-example-run-simple-task.md)
* [XAsync 库概述](https://docs.xbox.com/zh-CN/build/core-features/common/async/async-libraries/async-library-xasync.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-custom-provider.md)
* [异步编程模型](https://docs.xbox.com/zh-CN/build/core-features/common/async/async-programming-model.md)
* [通用异步任务包装器](https://docs.xbox.com/zh-CN/build/core-features/common/async/async-task-function-example.md)

## See also

[XAsync Members](https://docs.xbox.com/zh-CN/reference/system/xasync/xasync_members.md)\
[XAsyncProvider Members](https://docs.xbox.com/zh-CN/reference/system/xasyncprovider/xasyncprovider_members.md)\
[异步编程模型](https://docs.xbox.com/zh-CN/build/core-features/common/async/async-programming-model.md)


## Related topics

- [XAsyncWork](https://docs.xbox.com/zh-CN/reference/system/xasync/functions/xasyncwork.md)
- [运行简单任务示例](https://docs.xbox.com/zh-CN/build/core-features/common/async/async-libraries/async-library-xasync-example-run-simple-task.md)
- [XAsync（API 内容）](https://docs.xbox.com/zh-CN/reference/system/xasync/xasync_members.md)
- [XNetworkingQueryPreferredLocalUdpMultiplayerPortAsync](https://docs.xbox.com/zh-CN/reference/networking/xnetworking/functions/xnetworkingquerypreferredlocaludpmultiplayerportasync.md)
- [通用异步任务包装器](https://docs.xbox.com/zh-CN/build/core-features/common/async/async-task-function-example.md)
