CallbackBehaviorAttribute.ConcurrencyMode Eigenschaft
Definition
Wichtig
Einige Informationen beziehen sich auf Vorabversionen, die vor dem Release ggf. grundlegend überarbeitet werden. Microsoft übernimmt hinsichtlich der hier bereitgestellten Informationen keine Gewährleistungen, seien sie ausdrücklich oder konkludent.
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
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.