リモート オブジェクトのメソッドを非同期で呼び出す場合の問題

.NET リモート処理クライアントが、同期化されたコンテキストを必要とするコンテキスト バインド クラスである場合は、コールバック関数が .NET Framework リモート処理コンテキスト インフラストラクチャを通じてディスパッチされます。そのため、このようなコンテキストでは、コールバック関数自体が呼び出し元に関して非同期的に実行されることがあります。OneWayAttribute 属性も、コールバック メソッドのシグニチャに適用されるときには、同様の動作をします。このようなメソッド コールバック関数は、リモートの呼び出し元を基準にして、同期的または非同期的に実行されます。呼び出し元は、実行制御が戻されたときに、その呼び出しが完了したことを前提にできません。

Noteメモ :

同じ IAsyncResult について 2 回目の非同期操作が完了する前に EndInvoke メソッドを呼び出した場合の結果は、未定義です。

.NET Framework Version 1.0 および 1.1 では、例外をスローする非同期デリゲートは 2 回目に呼び出されます。.NET Framework Version 2.0 では、デリゲートは 1 回しか呼び出されません。

関連項目

概念

リモート処理の例 : 非同期リモート処理
リモート アプリケーションの構成

その他の技術情報

.NET Framework リモート処理の概要

Footer image

Copyright © 2007 by Microsoft Corporation.All rights reserved.