CallbackBehaviorAttribute.ConcurrencyMode Proprietà

Definizione

Ottiene o imposta un valore che indica se un servizio supporta un solo thread, più thread o chiamate rientranti.

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à

ConcurrencyMode

Uno dei valori di ConcurrencyMode. Il valore predefinito è Single.

Eccezioni

Il valore non appartiene all'enumerazione ConcurrencyMode.

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.

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. Rappresenta il valore predefinito. Un valore Multiple indica che gli oggetti servizio possono essere eseguiti da più thread contemporaneamente. In questo caso, è necessario garantire la sicurezza dei thread e la coerenza dello stato.

Reentrant limita anche l'accesso a un singolo thread alla volta. ma consente alle chiamate provenienti da un metodo del servizio in esecuzione di essere restituite e rientrare nel servizio in esecuzione. 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.

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.

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.

Per altre informazioni sulla concorrenza, vedere ServiceBehaviorAttribute.ConcurrencyMode e Sessioni, Instancing e Concorrenza.

Si applica a