CallbackBehaviorAttribute.ConcurrencyMode Eigenschaft

Definition

Gibt an, ob ein Dienst einen Thread, mehrere Threads oder wiedereintrittsfähige Aufrufe unterstützt, oder legt dies fest.

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

Eigenschaftswert

ConcurrencyMode

Einer der ConcurrencyMode-Werte; der Standardwert ist Single.

Ausnahmen

Der Wert ist keiner der ConcurrencyMode-Werte.

Hinweise

Diese Eigenschaft gibt an, ob eine Instanz eines Rückrufobjekts einen Thread oder mehrere Threads, die gleichzeitig ausgeführt werden, verarbeiten kann; wenn der Dienst ein Singlethread ist, gibt sie an, ob Reentranz unterstützt wird.

Das Festlegen von ConcurrencyMode auf Single weist das System an, Instanzen des Diensts auf jeweils einen ausgeführten Thread zu begrenzen, sodass Sie keine Threadingprobleme behandeln müssen. Dies ist der Standardwert. Der Wert Multiple bedeutet, das Dienstobjekte von mehreren Threads gleichzeitig ausgeführt werden können. In diesem Fall müssen Sie die Threadsicherheit und Zustandskonsistenz sicherstellen.

Reentrant beschränkt auch den Zugriff auf einen einzelnen Thread gleichzeitig. Jedoch werden Aufrufe von einer ausführenden Dienstmethode ermöglicht, um den ausführenden Dienst zurückzugeben und wieder in diesen einzutreten. Ein Reentrant-Aufruf kann in einem anderen verwalteten Thread ausgeführt werden, in diesem Fall wird der ursprüngliche Thread jedoch für die Dauer des Aufrufs gesperrt.

Im Allgemeinen wartet die Nachricht, bis die Instanz verfügbar ist oder bis ein Timeout auftritt, wenn eine Nachricht von einer Instanz eingeht, die gegen den Parallelitätsmodus verstößt.

Wenn ConcurrencyMode auf Single festgelegt ist und ein Reeentrant-Aufruf gesperrt wird, während darauf gewartet wird, dass die Instanz freigegeben wird, erkennt das System jedoch den Deadlock und löst eine Ausnahme aus.

Weitere Informationen zur Übereinstimmung finden Sie unter ServiceBehaviorAttribute.ConcurrencyMode und Sitzungen, Instancing und Concurrency.

Gilt für