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 。
AsyncAdd3ExplicitExample和AsyncAdd3ImplicitExample範例示範如何使用WsAsyncExecute手動實作相同的非同步函式。
規格需求
最低支援的用戶端 | Windows 7 [傳統型應用程式 |UWP 應用程式] |
最低支援的伺服器 | Windows Server 2008 R2 [傳統型應用程式 |UWP 應用程式] |
目標平台 | Windows |
標頭 | webservices.h |
程式庫 | WebServices.lib |
Dll | WebServices.dll |