Partager via


CallbackBehaviorAttribute.ConcurrencyMode Propriété

Définition

Obtient ou définit si un service prend en charge un thread, plusieurs threads ou des appels reentrants.

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

Valeur de propriété

Une des ConcurrencyMode valeurs ; la valeur par défaut est Single.

Exceptions

La valeur n’est pas l’une des ConcurrencyMode valeurs.

Remarques

Cette propriété indique si une instance d’un objet de rappel prend en charge un thread ou plusieurs threads qui s’exécutent simultanément, et si une instance à thread unique est prise en charge, si la réentrance est prise en charge.

Définir ConcurrencyMode pour Single indiquer au système de restreindre les instances du service à un thread d’exécution à la fois, ce qui vous permet de résoudre les problèmes de threading. Il s’agit de la valeur par défaut. Une valeur de Multiple signifie que les objets de service peuvent être exécutés par plusieurs threads à tout moment. Dans ce cas, vous devez garantir la sécurité des threads et la cohérence de l’état.

Reentrant restreint également l’accès à un seul thread à la fois. Toutefois, il permet aux appels d’une méthode de service en cours d’exécution de retourner et de réentérer le service en cours d’exécution. Un appel reentrant peut s’exécuter sur un autre thread managé, mais dans ce cas, le thread d’origine est bloqué pendant la durée de l’appel de réentrant.

En règle générale, si un message arrive pour une instance qui enfreint son mode d’accès concurrentiel, le message attend que l’instance soit disponible ou jusqu’à ce qu’elle expire.

En outre, si la ConcurrencyMode valeur est définie Single et qu’un appel reentrant est bloqué en attendant que l’instance soit libérée, le système détecte l’interblocage et lève une exception.

Pour plus d’informations sur la concurrence, consultez ServiceBehaviorAttribute.ConcurrencyMode et sessions, instanciation et concurrence.

S’applique à