以非同步方式接收資料
使用 Windows 時,TP 可以非同步接收資料,而不考慮 TP 內發生的其他事件。 下表顯示 TP 可以非同步接收資料的方法。 此資料表也指出非同步方法如何套用至接收資料以外的動作。
作業系統 | 方法 |
---|---|
Windows | 透過 Windows 訊息:WinAsyncAPPC的問題RECEIVE_AND_WAIT或MC_RECEIVE_AND_WAIT;應用程式會透過PostMessage通知完成至定義的視窗控制碼。 這個方法不限於 RECEIVE_AND_WAIT 和 MC_RECEIVE_AND_WAIT,但可以套用至任何 APPC 動詞命令。 |
Windows | 透過 Win32®事件:使用WinAsyncAPPCEx發出RECEIVE_AND_WAIT或MC_RECEIVE_AND_WAIT;應用程式會透過 Win32 事件收到完成通知。 這個方法不限於 RECEIVE_AND_WAIT 和 MC_RECEIVE_AND_WAIT,但可以套用至任何 APPC 動詞命令。 |
Windows | 使用 RECEIVE_AND_POST 或 MC_RECEIVE_AND_POST: 發出 RECEIVE_AND_POST 或 MC_RECEIVE_AND_POST 動詞命令。 |
下列清單提供這些非同步接收資料方法的詳細資料。 如需完整資訊,請參閱動詞描述。
使用WinAsyncAPPC RECEIVE_AND_WAIT或MC_RECEIVE_AND_WAIT
這個方法可讓應用程式發出動詞,並在動作完成時透過 PostMessage 收到通知。 若要擷取將張貼到視窗的訊息號碼,請使用 「WinAsyncAPPC」 呼叫 RegisterWindowMessage 作為輸入字串。 然後使用WinAsyncAPPC進入點發出RECEIVE_AND_WAIT或MC_RECEIVE_AND_WAIT。
使用WinAsyncAPPCExRECEIVE_AND_WAIT或MC_RECEIVE_AND_WAIT
此方法可讓應用程式透過 Win32 事件收到通知。 這在撰寫需要同時服務多個交談的應用程式時特別有用。 傳遞至 APPC 時,事件必須處於非簽署狀態,而且控制碼必須具有事件的EVENT_MODIFY_STATE存取權。
RECEIVE_AND_POST或 MC_RECEIVE_AND_POST
使用 RECEIVE_AND_POST 或 MC_RECEIVE_AND_POST時,應用程式會透過 Win32 事件收到通知。 傳遞至 APPC 時,事件必須處於非簽署狀態,而且控制碼必須具有事件的EVENT_MODIFY_STATE存取權。
非同步接收資料時,TP 會執行與這個交談無關的工作;在收到通知之前,TP 無法發出大部分的 APPC 動詞。 如需可發出之動詞的詳細資訊,請參閱 WinAsyncAPPC 或 WinAsyncAPPCEx的描述。
非同步完成動詞之後,請檢查primary_rc,以瞭解是否已收到資料,而不會發生錯誤。
注意
如果發出動詞命令的初始呼叫成功傳回,則不論動詞最終是否成功,應用程式都保證會由適用的方法 (通知) 。