WinAsyncAPPCEx
WinAsyncAPPCEx函式會為所有 APPC 動詞提供非同步進入點。 請使用此函式,而不是動詞的封鎖版本,以允許使用事件在同一個執行緒上處理多個會話。 此動詞僅在 Microsoft Windows 上受到支援,並使用 Win32® 事件。
語法
HANDLE WINAPI WinAsyncAPPCEx(
HANDLEevent_handle,
longlpVcb);
參數
event_handle
使用 Win32 事件處理事件通知的控制碼。
lpVcb
動詞控制項區塊的指標。
傳回值
傳回值會指定非同步解析要求是否成功。 如果函式成功,則傳回值是非同步工作控制碼。 如果函式未成功,則會傳回零。
當此函式傳回成功值時,這並不表示 APPC 呼叫最終會成功傳回。 它只會指出 APPC 程式庫可以使用事件以非同步方式嘗試 APPC 呼叫以通知。
備註
此函式適用于 WIN32 API 中的 WaitForSingleObject 或 WaitForMultipleObjects 。 這些函式會在 Microsoft Platform SDK 檔的一節中說明。
如需如何在多執行緒 TP 中使用這個動詞的範例,請參閱多執行緒傳送和接收範例 TP (MRCV。C、MSEND。C 和 MSENDRCV。C 位於 SDK 中包含的 MSENDRCV 資料夾中) 。
可以封鎖的基本交談中使用的 APPC 動詞如下:
-
在可封鎖的對應交談中使用的 APPC 動詞如下:
-
使用動詞的同步或非同步版本時,應用程式一次只能有一個未處理的函式進行中。 嘗試起始第二個函式會導致錯誤碼AP_CONV_BUSY。
注意
上述段落的例外狀況是 RECEIVE_AND_POST、 MC_RECEIVE_AND_POST、 RECEIVE_AND_WAIT和 MC_RECEIVE_AND_WAIT。
注意
為了允許完整使用非同步支援,已改變異步發出RECEIVE_AND_WAIT和MC_RECEIVE_AND_WAIT動詞,以像RECEIVE_AND_POST和MC_RECEIVE_AND_POST動詞。 具體來說,雖然其中一個動詞的非同步版本未完成,但可以在相同的交談上發出下列動詞:
DEALLOCATE (AP_ABEND_PROG、AP_ABEND_SVC或AP_ABEND_TIMER)
注意
這可讓應用程式特別是伺服器應用程式使用非同步 RECEIVE_AND_WAIT 或 MC_RECEIVE_AND_WAIT 來接收資料。 雖然 RECEIVE_AND_POST、 MC_RECEIVE_AND_POST、 RECEIVE_AND_WAIT或 MC_RECEIVE_AND_WAIT 尚未完成,但仍可使用 SEND_ERROR 或 MC_SEND_ERROR 和 REQUEST_TO_SEND 或 MC_REQUEST_TO_SEND。 建議您針對完整非同步支援使用這項功能,特別是針對在相同執行緒上支援多個交談。
非同步作業完成時,應用程式會透過事件的訊號通知。 發出事件訊號時,請檢查動詞控制項區塊中是否有任何錯誤狀況的 APPC 主要傳回碼和次要傳回碼。