Уничтожить поток wcf - PullRequest
       2

Уничтожить поток wcf

0 голосов
/ 13 марта 2011

Я использую многопоточный wcf maxConcurrentCalls = 10. Регистрируя вызовы моей службы, я вижу, что в моем классе обслуживания выполняется 10 различных потоков и что они повторно используются в следующих вызовах.

Могу ли я сказать WCF уничтожить / удалить поток, чтобы он создал новый при следующем вызове?

Это связано с тем, что у меня есть состояние статического потока, которое иногда требуется очистить (при непредвиденных исключениях). Я использую потоковую статическую область для увеличения производительности.

1 Ответ

1 голос
/ 13 марта 2011

WCF не создает новые темы.Он использует потоки из пула потоков для обслуживания запросов.Поэтому, когда запрос начинается, он рисует поток из этого пула для выполнения запроса, а после его завершения возвращает поток в пул.То, как WCF использует потоки внизу, - это деталь реализации, на которую вы не должны полагаться.Вы никогда не должны использовать Thread Static в ASP.NET/WCF для хранения состояния.

В ASP.NET вы должны использовать HttpContext.Items и в WCF OperationContext для хранения некоторого состояния, которое будет доступно через весь запрос.

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

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