WinAsyncAPPCEx

WinAsyncAPPCEx 函式為所有 APPC 動詞提供非同步的入口點。 使用此函式取代阻擋版本的動詞,允許在同一執行緒中透過事件處理多個會話。 此動詞僅支援 Microsoft Windows,並使用 Win32® 事件。

語法

  
    HANDLE WINAPI WinAsyncAPPCEx(   
HANDLEevent_handle,  
longlpVcb);  

參數

event_handle
用來通知事件的 Win32 事件。

lpVcb
指向動詞控制區塊。

傳回值

回傳值則指定非同步解析請求是否成功。 若函式成功,回傳值為非同步任務句柄。 若函數未成功,則回傳為零。

當此函式回傳成功值時,並不代表 APPC 呼叫最終會成功返回。 它只表示 APPC 函式庫可以利用事件作為通知,非同步嘗試呼叫。

備註

此函式設計用於 Win32 API 中的 WaitForSingleObjectWaitForMultipleObjects 。 這些功能在 Microsoft Platform SDK 文件的「參考」部分有描述。

關於如何在多執行緒 TP 中使用此動詞的範例,請參見多執行緒發送與接收範例 TP(MRCV.C,MSEND。C,以及MSENDRCV。C 語言位於 MSENDRCV 資料夾中),包含在 SDK 中。

在基本對話中能阻擋的 APPC 動詞如下:

備註

為了充分利用非同步支援,非同步發出的 RECEIVE_AND_WAITMC_RECEIVE_AND_WAIT 動詞被修改為與 RECEIVE_AND_POSTMC_RECEIVE_AND_POST 動詞相似。 具體來說,雖然其中一個動詞的非同步版本是優異的,但以下動詞可在同一對話中出現:

備註

這使得應用程式,特別是伺服器應用程式,能夠使用非同步 RECEIVE_AND_WAITMC_RECEIVE_AND_WAIT 來接收資料。 雖然 RECEIVE_AND_POSTMC_RECEIVE_AND_POSTRECEIVE_AND_WAITMC_RECEIVE_AND_WAIT 都很優秀,但它仍然可以使用 SEND_ERRORMC_SEND_ERROR ,以及 REQUEST_TO_SENDMC_REQUEST_TO_SEND。 建議您使用此功能以提供完整的非同步支援,特別是同一執行緒中多次對話的支援。

非同步操作完成後,應用程式會透過事件的訊號收到通知。 事件發出訊號後,檢查動詞控制區塊中 APPC 的主要回傳碼與次要回傳碼是否有錯誤狀況。