XAsyncComplete

指示异步提供程序的回调函数已完成工作,并且可以返回结果。

语法

void XAsyncComplete(  
         XAsyncBlock* asyncBlock,  
         HRESULT result,  
         size_t requiredBufferSize  
)  

参数

asyncBlock _Inout_
类型:XAsyncBlock*

指向传递到 XAsyncBeginXAsyncBlock 的指针。

result _In_
类型:HRESULT

回调函数所执行的工作的结果。 如果取消工作,则将其设置为 E_ABORT。 如果需要完成更多工作,则将其设置为 E_PENDING。 否则,将其设置为相应的结果代码。

requiredBufferSize _In_
类型:size_t

回调函数返回的数据有效负载的所需大小(字节数)。 如果回调函数未返回数据有效负载,则将此值设置为零。 如果回调函数返回错误,则会忽略此参数。

返回值

类型:void

备注

注意

在时间敏感线程上调用此函数是不安全的。 有关详细信息,请参阅时间敏感线程

调用回调函数以执行或取消异步工作时,将调用此函数。 该函数将返回相应的结果代码和有关数据有效负载的信息(如果适用)。 XAsyncOp 操作代码、异步工作和回调函数的数据有效负载的组合通常用于确定调用此函数时应为 resultrequiredBufferSize 提供的值。

如果已使用 XAsyncOp::DoWork 操作代码调用了回调函数,则该回调函数应执行异步工作。 如果回调函数已完成所有异步工作,则将 result 设置为相应的错误代码。 如果需要完成更多工作,则将 result 设置为 E_PENDING。 如果函数返回数据有效负载,则将 requiredBufferSize 设置为返回数据有效负载所需的缓冲区大小(字节数);否则,将 requiredBufferSize 设置为零。

如果已使用 XAsyncOp::Cancel 操作代码调用了回调函数,则该回调函数应取消异步工作。 将 result 设置为 E_ABORT,并将 requiredBufferSize 设置为零。

要求

头文件: XAsyncProvider.h

库:xgameruntime.lib

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

另请参阅

XAsyncProvider 成员
XAsyncBegin
异步编程模型