CallbackBehaviorAttribute.ConcurrencyMode Propiedad

Definición

Obtiene o establece si un servicio admite un subproceso, varios subprocesos o llamadas reentrantes.

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

Valor de propiedad

Uno de los valores de ConcurrencyMode; el valor predeterminado es Single.

Excepciones

El valor no es uno de los valores de ConcurrencyMode.

Comentarios

Esta propiedad indica si una instancia de un objeto de devolución de llamada admite un subproceso o varios subprocesos que se ejecutan de forma simultánea y, si es de un único subproceso, si se admite la reentrada.

Al establecer ConcurrencyMode como Single se le indica al sistema que restrinja las instancias del servicio a un subproceso de ejecución de cada vez, lo que lo libera de problemas con los subprocesos. Este es el valor predeterminado. Un valor de Multiple indica que varios subprocesos pueden ejecutar los objetos de servicio en cualquier momento. En este caso, debe garantizar la seguridad para subprocesos y coherencia del estado.

Reentrant también restringe el acceso a un único subproceso a la vez. Sin embargo, permite que las llamadas procedentes de un método de servicio ejecutor regresen y reentren en el servicio ejecutor. Una llamada reentrante puede ejecutarse en un subproceso administrado diferente, pero en este caso el subproceso original está bloqueado para la duración de la llamada reentrante.

Generalmente, si llega un mensaje para una instancia que infringe su modo de simultaneidad, el mensaje espera hasta que la instancia esté disponible, o hasta que expire.

Además, si ConcurrencyMode está establecido como Single y se bloquea una llamada reentrante esperando a que la instancia se libere, el sistema detecta el interbloqueo e inicia una excepción.

Para obtener más información sobre la simultaneidad, vea ServiceBehaviorAttribute.ConcurrencyMode y Sesiones, Instancing y Concurrency.

Se aplica a