CallbackBehaviorAttribute.ConcurrencyMode CallbackBehaviorAttribute.ConcurrencyMode CallbackBehaviorAttribute.ConcurrencyMode CallbackBehaviorAttribute.ConcurrencyMode Property

Definizione

Ottiene o imposta un valore che indica se un servizio supporta un solo thread, più thread o chiamate rientranti.Gets or sets whether a service supports one thread, multiple threads, or reentrant calls.

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

Valore della proprietà

Uno dei valori di ConcurrencyMode. Il valore predefinito è Single.One of the ConcurrencyMode values; the default is Single.

Eccezioni

Commenti

Questa proprietà indica se un'istanza di un oggetto callback supporta un solo thread o più thread eseguiti contemporaneamente e, in caso di thread singolo, se è supportata la reentrancy.This property indicates whether an instance of a callback object supports one thread or multiple threads that execute concurrently, and if single-threaded, whether reentrancy is supported.

L'impostazione di ConcurrencyMode su Single indica al sistema di limitare le istanze del servizio a un solo thread di esecuzione alla volta, evitando in questo modo di incorrere in problemi di threading.Setting ConcurrencyMode to Single instructs the system to restrict instances of the service to one thread of execution at a time, which frees you from dealing with threading issues. Rappresenta il valore predefinito.This is the default value. Un valore Multiple indica che gli oggetti servizio possono essere eseguiti da più thread contemporaneamente.A value of Multiple means that service objects can be executed by multiple threads at any one time. In questo caso, è necessario garantire la sicurezza dei thread e la coerenza dello stato.In this case, you must ensure thread safety and state consistency.

Reentrant limita inoltre l'accesso a un singolo thread alla volta.Reentrant also restricts access to a single thread at a time. ma consente alle chiamate provenienti da un metodo del servizio in esecuzione di essere restituite e rientrare nel servizio in esecuzione.However, it enables calls out from an executing service method to return and reenter the executing service. Una chiamata rientrante può essere eseguita su un thread gestito diverso, ma in questo caso il thread originale viene bloccato per tutta la durata della chiamata rientrante.A reentrant call can execute on a different managed thread, but in this case the original thread is blocked for the duration of the reentrant call.

In genere, se arriva un messaggio per un'istanza che viola la modalità di concorrenza, il messaggio resta in attesa fino a quando l'istanza non diventa disponibile o fino al timeout.Generally, if a message arrives for an instance that violates its concurrency mode, the message waits until the instance is available, or until it times out.

Inoltre, se ConcurrencyMode è impostata su Single e una chiamata rientrante è bloccata in attesa che l'istanza sia disponibile, il sistema rileva il deadlock e genera un'eccezione.In addition, if the ConcurrencyMode is set to Single and a reentrant call is blocked while waiting for the instance to be freed, the system detects the deadlock and throws an exception.

Per ulteriori informazioni sulla concorrenza, vedere ServiceBehaviorAttribute.ConcurrencyMode e sessioni, istanze e concorrenza.For more information about concurrency, see ServiceBehaviorAttribute.ConcurrencyMode and Sessions, Instancing, and Concurrency.

Si applica a