WCF выполняет операции в службе Singleton WCF в том же потоке? - PullRequest
3 голосов
/ 06 сентября 2010

У меня есть служба, помеченная атрибутом ServiceBehavior

[ServiceBehavior(InstanceContextMode=InstanceContextMode.Single,
 ConcurrencyMode = ConcurrencyMode.Multiple)]

Есть ли шанс, что операции в этом сервисе будут выполняться одним и тем же потоком?

Я храню важные данные в переменной ThreadLocal, которая должна использоваться для однократного выполнения операции.

Ответы [ 2 ]

3 голосов
/ 06 сентября 2010

Нет,

Каждый запрос отвечает в отдельной теме.атрибут InstanceContextMode.Single указывает, что служба использует один и тот же объект (и его члены) для каждого запроса.

2 голосов
/ 06 сентября 2010

Имейте в виду, что потоки в WCF обрабатываются ThreadPool => Поток не удаляется после обработки запроса, но возвращается в пул, поэтому его можно использовать повторно для другой обработки запроса. Я не уверен, как это работает с ThreadLocal , но с ThreadStaticAttribute это может легко передать значение от одной обработки запроса до следующей случайной обработки запроса, которая будет использовать тот же поток.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...