XAsyncOp

表示异步提供程序的操作代码。

语法

enum class XAsyncOp  : uint32_t  
{  
    Begin,  
    DoWork,  
    GetResult,  
    Cancel,  
    Cleanup  
}  

常量

常量 说明
Begin 在调用 XAsyncBegin 时,将使用此操作代码调用异步提供程序。
如果实现了此操作代码,异步提供程序应会启动其异步工作,方法是调用 XAsyncSchedule 或启动外部异步进程,如重叠的 I/O。
注意 为此操作代码执行的异步工作不得阻止线程。
DoWork 当调用了 XAsyncSchedule 来安排工作时,将使用此操作代码调用异步提供程序。
如果实现了此操作代码,异步提供程序应会执行其异步工作,然后调用 XAsyncComplete,在 requiredBufferSize 中指定数据有效负载的大小。 如果需要执行额外的工作,异步提供程序可以安排这些工作,然后调用 XAsyncComplete,在 result 中指定错误代码 E_PENDING。
GetResult 异步调用完成后,将使用此操作代码调用异步提供程序,用户需要获取生成的数据有效负载。
已验证了 XAsyncProviderDatabufferbufferSize 字段。
Cancel 在应该取消异步工作时,将使用此操作代码调用异步提供程序。
异步提供程序应取消所有异步工作,然后调用 XAsyncComplete,在 result 中指定错误代码 E_ABORT。
Cleanup 当异步调用已完成或已取消,并且可以清理上下文中的数据时,将使用此操作代码调用异步提供程序。

备注

异步提供程序的 XAsyncProvider 回调函数将被反复调用,并且异步提供程序为每次调用执行的操作是由为每次调用指定的操作代码来决定的。 XAsyncOp 表示可由异步提供程序实现的操作代码。
异步提供程序应仅实现 XAsyncOp 中执行异步工作所需的那些操作代码。 例如,执行无需清理的、不可取消的异步 I/O 工作的异步提供程序只需要实现 XAsyncOp::GetResult

有关通过 XAsyncOp 实现 DoWorkGetResultCleanup 操作代码的异步提供程序的示例,请参阅异步编程模型中的“异步库”部分。

要求

头文件: XAsyncProvider.h

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

另请参阅

XAsyncProviderData
XAsyncProvider 成员
异步编程模型