リモート オブジェクトのメソッドを非同期で呼び出す場合の問題
このトピックの対象は、既存のアプリケーションとの下位互換性のために残されているレガシ テクノロジに特定されています。新規の開発には、このトピックを適用しないでください。分散アプリケーションは、現在は Windows Communication Foundation (WCF) を使用して開発する必要があります。
.NET リモート処理クライアントが、同期化されたコンテキストを必要とするコンテキスト バインド クラスである場合は、コールバック関数が .NET Framework リモート処理コンテキスト インフラストラクチャを通じてディスパッチされます。そのため、このようなコンテキストでは、コールバック関数自体が呼び出し元に関して非同期的に実行されることがあります。OneWayAttribute 属性も、コールバック メソッドのシグニチャに適用されるときには、同様の動作をします。このようなメソッド コールバック関数は、リモートの呼び出し元を基準にして、同期的または非同期的に実行されます。呼び出し元は、実行制御が戻されたときに、その呼び出しが完了したことを前提にできません。
注 : |
---|
同じ IAsyncResult について 2 回目の非同期操作が完了する前に EndInvoke メソッドを呼び出した場合の結果は、未定義です。 |
.NET Framework Version 1.0 および 1.1 では、例外をスローする非同期デリゲートは 2 回目に呼び出されます。.NET Framework Version 2.0 では、デリゲートは 1 回しか呼び出されません。
参照
概念
リモート処理の例 : 非同期リモート処理
リモート アプリケーションの構成