CallbackBehaviorAttribute.ConcurrencyMode 속성

정의

서비스에서 하나의 스레드, 여러 스레드 또는 재진입 호출을 지원하는지 여부를 가져오거나 설정합니다.

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

속성 값

값 중 ConcurrencyMode 하나입니다. 기본값은 .입니다 Single.

예외

값이 값 중 ConcurrencyMode 하나가 아닙니다.

설명

이 속성은 콜백 개체의 인스턴스가 동시에 실행되는 스레드 하나 또는 여러 스레드를 지원하는지 여부와 단일 스레드인 경우 재진입이 지원되는지 여부를 나타냅니다.

서비스 인스턴스를 ConcurrencyMode 한 번에 하나의 실행 스레드로 제한하도록 시스템에 지시하도록 설정 Single 하면 스레딩 문제를 처리할 수 없습니다. 기본값입니다. 값 Multiple 은 서비스 개체를 한 번에 여러 스레드에서 실행할 수 있음을 의미합니다. 이 경우 스레드 안전성 및 상태 일관성을 보장해야 합니다.

Reentrant 또한 한 번에 단일 스레드에 대한 액세스를 제한합니다. 그러나 실행 중인 서비스 메서드에서 호출하여 실행 중인 서비스를 반환하고 다시 입력할 수 있습니다. 재진입 호출은 다른 관리되는 스레드에서 실행할 수 있지만, 이 경우 재진입 호출 기간 동안 원래 스레드가 차단됩니다.

일반적으로 동시성 모드를 위반하는 인스턴스에 대한 메시지가 도착하면 인스턴스를 사용할 수 있거나 시간이 초과될 때까지 메시지가 대기합니다.

또한 인스턴스가 ConcurrencyModeSingle 해제될 때까지 기다리는 동안 재진입 호출이 차단되면 시스템에서 교착 상태를 감지하고 예외를 throw합니다.

동시성에 대한 자세한 내용은 ServiceBehaviorAttribute.ConcurrencyMode 참조 하세요.

적용 대상