CallbackBehaviorAttribute.ConcurrencyMode プロパティ
定義
重要
一部の情報は、リリース前に大きく変更される可能性があるプレリリースされた製品に関するものです。 Microsoft は、ここに記載されている情報について、明示または黙示を問わず、一切保証しません。
サービスが、1 つのスレッド、複数のスレッド、または再入呼び出しをサポートするかどうかを示す値を取得または設定します。
public:
property System::ServiceModel::ConcurrencyMode ConcurrencyMode { System::ServiceModel::ConcurrencyMode get(); void set(System::ServiceModel::ConcurrencyMode value); };
public System.ServiceModel.ConcurrencyMode ConcurrencyMode { get; set; }
member this.ConcurrencyMode : System.ServiceModel.ConcurrencyMode with get, set
Public Property ConcurrencyMode As ConcurrencyMode
プロパティ値
ConcurrencyMode 値の 1 つ。既定値は Single です。
例外
値が、ConcurrencyMode 値ではありません。
注釈
このプロパティは、コールバック オブジェクトのインスタンスが 1 つのスレッドまたは同時に実行する複数のスレッドをサポートするかどうか、およびシングル スレッドの場合は再入をサポートするかどうかを示します。
ConcurrencyMode を Single に設定すると、サービスのインスタンスを 1 つずつのスレッド実行に制限するようシステムに指示します。それにより、スレッドの問題に対応することから解放されます。 これが既定値です。 Multiple の値は、サービス オブジェクトを複数のスレッドで一度に実行できることを示します。 この場合は、開発者がスレッド セーフと状態の整合性を保証する必要があります。
Reentrant では、一度に 1 つのスレッドへのアクセスも制限されます。 ただし、この設定は、実行中のサービス メソッドから呼び出され、実行中のサービスに戻って再入する呼び出しを可能にします。 再入可能呼び出しは異なるマネージド スレッドで実行できますが、その場合は、再入可能呼び出しの有効期間の間、元のスレッドがブロックされます。
通常、コンカレンシー モードに違反するインスタンスにメッセージが届いた場合は、そのインスタンスが使用可能になるまで、またはタイムアウトになるまで、メッセージは待機します。
さらに、ConcurrencyMode が Single に設定され、再入可能呼び出しが、インスタンスが解放されるまで待機する間ブロックされた場合、システムはデッドロックを検出し、例外をスローします。
コンカレンシーの詳細については、「セッション」、「インスタンス化」、「コンカレンシー」を参照してくださいServiceBehaviorAttribute.ConcurrencyMode。
適用対象
.NET