WsAsyncExecute 函数 (webservices.h)
用于实现 异步 操作的帮助程序函数。
语法
HRESULT WsAsyncExecute(
[in] WS_ASYNC_STATE *asyncState,
[in, optional] WS_ASYNC_FUNCTION operation,
[in] WS_CALLBACK_MODEL callbackModel,
[in] void *callbackState,
[in, optional] const WS_ASYNC_CONTEXT *asyncContext,
[in, optional] WS_ERROR *error
);
参数
[in] asyncState
指向异步操作期间使用的 WS_ASYNC_STATE 结构的指针。 这是不用于直接使用的状态维护参数。 应用程序必须分配 WS_ASYNC_STATE 结构,并确保在整个异步操作期间保持活动状态。 异步操作完成后,可以重复使用 WS_ASYNC_STATE 结构。
[in, optional] operation
表示要执行的初始异步操作。
[in] callbackModel
指示调用回调是长还是短。 有关详细信息,请参阅 WS_CALLBACK_MODEL
[in] callbackState
指向传递给每个 WS_ASYNC_FUNCTION的用户定义值的 void 指针。
[in, optional] asyncContext
指向用于异步调用函数的信息的指针。 传递 NULL 以同步调用函数。
[in, optional] error
指向 WS_ERROR 结构的指针,该结构在函数失败时接收其他错误信息。
返回值
如果函数成功,则返回NO_ERROR;否则,它将返回 HRESULT 错误代码。
注解
若要了解 WWSAPI 如何处理异步操作,请参阅 异步模型 主题。
在许多情况下,异步操作由其他异步操作组成。 每个异步操作可能返回WS_S_ASYNC指示将调用回调或任何其他成功或失败代码,在这种情况下,将不调用回调。 该操作必须准备好接受 NULL WS_ASYNC_CONTEXT指示调用方正在请求同步执行的操作。 它还必须确保正确调用回调。 在复杂的异步操作 中,WsAsyncExecute 简化了这些详细信息。
WsAsyncExecute 通过调用用户定义的回调来操作,该回调可以启动异步操作,并指示在异步操作完成时要调用的函数。 此序列一直持续到回调未设置要调用的另一个函数。 此时,如果任何操作以异步方式完成,则将调用WS_ASYNC_CONTEXT指定的回调。
WS_ASYNC_STATE 参数由 WsAsyncExecute 用于维护其状态,并且不由调用方初始化、检查或使用。 但是,调用方必须分配 WS_ASYNC_STATE 并确保在整个异步操作期间保持活动状态。 异步操作完成后,可以重复使用 WS_ASYNC_STATE 。
示例 AsyncAdd3ExplicitExample 和 AsyncAdd3ImplicitExample 演示如何使用 WsAsyncExecute 手动实现相同的异步函数。
要求
最低受支持的客户端 | Windows 7 [桌面应用 |UWP 应用] |
最低受支持的服务器 | Windows Server 2008 R2 [桌面应用 |UWP 应用] |
目标平台 | Windows |
标头 | webservices.h |
Library | WebServices.lib |
DLL | WebServices.dll |