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

Одно из значений ConcurrencyMode; значение по умолчанию — Single.

Исключения

Данное значение не является одним из значений ConcurrencyMode.

Комментарии

Это свойство указывает, поддерживает ли экземпляр объекта обратного вызова один поток или несколько потоков, выполняемых одновременно, и поддерживаются ли повторные входящие вызовы в однопоточном режиме.

Установка для параметра ConcurrencyMode значения Single приводит к тому, что система не дает экземплярам службы одновременно выполнять более одного потока, что позволяет избежать решения вопросов многопоточности. Это значение по умолчанию. Значение Multiple означает, что объекты службы могут выполняться несколькими потоками одновременно. В этом случае необходимо обеспечить защиту потоков и согласованность состояний.

Reentrant также разрешает доступ только к одному потоку за раз. Однако при этом существует возможность вызовов из метода выполняемой службы для возврата и повторного входа в выполняемую службу. Повторный входящий вызов может выполняться в другом управляемом потоке, однако при этом в течение всего времени повторного входящего вызова исходный поток будет заблокирован.

Обычно в случае прибытия сообщения для экземпляра, нарушающего режим параллелизма, сообщение ожидает доступности экземпляра или истечения срока своего действия.

Кроме того, если для параметра ConcurrencyMode задано значение Single и если повторный входящий вызов блокируется во время ожидания освобождения экземпляра, система обнаруживает взаимоблокировку и выдает исключение.

Дополнительные сведения о параллелизме см. в разделе ServiceBehaviorAttribute.ConcurrencyMode и сеансы, создание экземпляров и параллелизм.

Применяется к