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

示例 AsyncAdd3ExplicitExampleAsyncAdd3ImplicitExample 演示如何使用 WsAsyncExecute 手动实现相同的异步函数。

要求

   
最低受支持的客户端 Windows 7 [桌面应用 |UWP 应用]
最低受支持的服务器 Windows Server 2008 R2 [桌面应用 |UWP 应用]
目标平台 Windows
标头 webservices.h
Library WebServices.lib
DLL WebServices.dll