Windows を使用する場合、TP は TP 内で発生する他のイベントに関係なく、非同期的にデータを受信できます。 次の表は、TP がデータを非同期的に受信できるメソッドを示しています。 また、データを受け取る以外のアクションに非同期メソッドを適用する方法も示します。
オペレーティング システム | メソッド |
---|---|
ウィンドウズ |
Windows メッセージを使用して:WinAsyncAPPCでRECEIVE_AND_WAITまたはMC_RECEIVE_AND_WAITを発行する。アプリケーションは、定義されたウィンドウ ハンドルに PostMessage を介して完了の通知を受け取ります。 このメソッドは 、RECEIVE_AND_WAIT と MC_RECEIVE_AND_WAITに限定されませんが、任意の APPC 動詞に適用できます。 |
ウィンドウズ |
Win32® イベントを通じて:WinAsyncAPPCEx でRECEIVE_AND_WAITまたはMC_RECEIVE_AND_WAITを発行します。アプリケーションは Win32 イベントを通じて完了を通知されます。 このメソッドは 、RECEIVE_AND_WAIT と MC_RECEIVE_AND_WAITに限定されませんが、任意の APPC 動詞に適用できます。 |
ウィンドウズ | RECEIVE_AND_POSTまたはMC_RECEIVE_AND_POSTの場合、RECEIVE_AND_POSTまたはMC_RECEIVE_AND_POSTの動詞を発行します。 |
次の一覧では、これらのデータを非同期的に受信する方法について詳しく説明します。 詳細については、動詞の説明を参照してください。
RECEIVE_AND_WAITまたはMC_RECEIVE_AND_WAITをWinAsyncAPPCで使用する
このメソッドを使用すると、アプリケーションは動詞を発行し、アクションが完了したときに PostMessage を通じて通知を受け取ります。 ウィンドウに投稿されるメッセージ番号を取得するには、入力文字列として "WinAsyncAPPC" を指定して RegisterWindowMessage を呼び出します。
WinAsyncAPPC エントリポイントを使用して、RECEIVE_AND_WAIT か MC_RECEIVE_AND_WAIT を発行します。
RECEIVE_AND_WAITまたはMC_RECEIVE_AND_WAITをWinAsyncAPPCExで使用
このメソッドを使用すると、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を調べて、データがエラーなしで受信されたかどうかを確認します。
注
動詞を発行する最初の呼び出しが正常に返された場合、動詞が最終的に成功したかどうかに関係なく、動詞が完了したときにアプリケーションに (該当するメソッドによって) 通知を受け取る必要があります。