次の方法で共有


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

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

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

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

参照

概念

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

その他の技術情報

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