共用方式為


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所指定的回呼。

WsAsyncExecute會使用WS_ASYNC_STATE參數來維護其狀態,而且不適合由呼叫端初始化、檢查或使用。 不過,呼叫端必須配置 WS_ASYNC_STATE, 並確保它在整個非同步作業期間保持運作。 非同步作業完成後,可能會重複使用 WS_ASYNC_STATE

AsyncAdd3ExplicitExampleAsyncAdd3ImplicitExample範例示範如何使用WsAsyncExecute手動實作相同的非同步函式。

規格需求

   
最低支援的用戶端 Windows 7 [傳統型應用程式 |UWP 應用程式]
最低支援的伺服器 Windows Server 2008 R2 [傳統型應用程式 |UWP 應用程式]
目標平台 Windows
標頭 webservices.h
程式庫 WebServices.lib
Dll WebServices.dll