Condividi tramite


CallbackBehaviorAttribute.ConcurrencyMode Proprietà

Definizione

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

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 ConcurrencyMode valori. Il valore predefinito è Single.

Eccezioni

Il valore non è uno dei ConcurrencyMode valori.

Commenti

Questa proprietà indica se un'istanza di un oggetto callback supporta un thread o più thread che vengono eseguiti contemporaneamente e se è supportata la reentrancy a thread singolo.

L'impostazione ConcurrencyMode su Single indica al sistema di limitare le istanze del servizio a un thread di esecuzione alla volta, che consente di gestire i problemi di threading. Questo è il valore predefinito. Un valore indica Multiple che gli oggetti servizio possono essere eseguiti da più thread contemporaneamente. In questo caso, è necessario garantire la coerenza tra thread safety e stato.

Reentrant limita inoltre l'accesso a un singolo thread alla volta. Tuttavia, consente alle chiamate da un metodo di servizio in esecuzione di restituire e immettere nuovamente il servizio in esecuzione. Una chiamata reentrant può essere eseguita su un thread gestito diverso, ma in questo caso il thread originale viene bloccato per la durata della chiamata reentrant.

In genere, se arriva un messaggio per un'istanza che viola la modalità di concorrenza, il messaggio attende fino a quando l'istanza non è disponibile o fino al timeout.

Inoltre, se ConcurrencyMode è impostato su Single e viene bloccata una chiamata reentrant durante l'attesa che l'istanza venga liberata, il sistema rileva il deadlock e genera un'eccezione.

Per altre informazioni sulla concorrenza, vedere ServiceBehaviorAttribute.ConcurrencyModeSessioni, istanze e concorrenza.

Si applica a