データを非同期に受信する
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を発行します。
WinAsyncAPPCEx を使用したRECEIVE_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をチェックして、データがエラーなしで受信されたかどうかを確認します。
Note
動詞を発行する最初の呼び出しが正常に返された場合、動詞が最終的に成功したかどうかに関係なく、動詞の完了時に (該当するメソッドによって) アプリケーションに通知されます。