XAsyncBegin

初始化 XAsyncBlock 并由异步提供程序开始异步工作。

语法

HRESULT XAsyncBegin(  
         XAsyncBlock* asyncBlock,  
         void* context,  
         const void* identity,  
         const char* identityName,  
         XAsyncProvider* provider  
)  

参数

asyncBlock _Inout_
类型:XAsyncBlock*

指向保存异步调用数据的 XAsyncBlock 的指针。

context _In_opt_
类型:void*

可选。 要存储在传递给 XAsyncProvider 回调函数的 XAsyncProviderData 对象中的上下文指针。

identity _In_opt_
类型:void*

可选。 指向可用于标识异步调用的任意令牌的指针。

identityName _In_opt_
类型:char*

可选。 用于命名提供异步调用的函数的字符串。 此参数的值通常设置为 __FUNCTION__ 编译器宏。

provider _In_
类型:XAsyncProvider*

指向用于调用异步调用的 XAsyncProvider 回调函数的指针。

返回值

类型:HRESULT

如果成功,则返回 S_OK;否则返回错误代码。 有关错误代码的列表,请参阅错误代码

备注

调用 XAsyncBegin 来指示异步提供程序应开始异步工作。 调用 XAsyncBegin 后,其他 XAsyncProvider 函数(如 XAsyncGetResult)将提供有意义的数据。

调用 XAsyncBegin 后,将调用 provider 中指定的回调函数,在 XAsyncProviderop 参数中指定 XAsyncOp::Begin。 如果回调函数实现了该操作代码,则该函数应通过调用 XAsyncSchedule 或外部方式开始其异步工作。 在返回 XAsyncBegin 之后,假定回调函数已在系统定义的线程上开始异步工作。

注意

provider 中指定的回调函数在 XAsyncBegin 调用链中进行同步处理。 回调函数执行的异步工作不得阻止线程。

可使用 identityidentityName 参数来标识和管理与回调函数不匹配的 XAsyncOp::BeginXAsyncOp::GetResult 调用。 通常,将 identity 的值设置为调用 XAsyncBegin 的函数的函数指针,并将 identityName 的值设置为 __FUNCTION__ 编译器宏。

要求

头文件: XAsyncProvider.h

库:xgameruntime.lib

支持平台:Windows、Xbox One 系列主机和 Xbox Series 主机

另请参阅

XAsyncProvider 成员
XAsyncProviderData
XAsyncProvider
XAsyncGetResult
异步编程模型