CallbackBehaviorAttribute.ConcurrencyMode Propriété
Définition
Important
Certaines informations portent sur la préversion du produit qui est susceptible d’être en grande partie modifiée avant sa publication. Microsoft exclut toute garantie, expresse ou implicite, concernant les informations fournies ici.
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.