Использование tasks / ThreadPool в приложении IIS (asp .net) - PullRequest
1 голос
/ 14 июля 2011

У нас есть приложение asp.net на iis 7. Нам нужно создать асинхронный процесс для расчета (с помощью веб-службы) и не заставлять клиента ждать, для этого мы использовали ThreadPool (я предпочитаю Задачи, но я я парень на стороне сервера).
Мои вопросы:
1. если при использовании пула потоков в iis он берет потоки из пула iis с клиентов или из ОС?
2. Что бы вы использовали Tasks или ThreadPool (Задачи дают вам гораздо больше, я знаю, но ребята с интерфейсом любят пул).
Танки

Ответы [ 2 ]

4 голосов
/ 14 июля 2011

Узел ASP.NET предоставляет один пул потоков на процесс. Так что, если вы используете ThreadPool, то он берет из того же пула, который взят для запросов к серверу.

Тем не менее, если вы запускаете фоновые операции, которые независимы из одного клиентского запроса, вам следует использовать службу Win32, веб-службу, систему очереди сообщений или что-то подобное. Запуск «фоновых» потоков в ASP.NET идет против всей архитектуры IIS; гораздо проще правильно масштабировать и выполнять другие ИТ-операции (например, перезапускать пулы приложений), если вы поддерживаете HTTP-состояние без сохранения состояния.

0 голосов
/ 14 июля 2011

Задача, по-прежнему потребляет потоки из пула потоков.

Насколько я понял, ваш вопрос, сторонний сервис выполняет вычисления с высокой загрузкой процессора, и вам нужно асинхронно ждать его завершения.

В случае, если вы хотите отложить рендеринг страницы до завершения вычислений, Асинхронные страницы помогут.Этот подход вернет поток обработки в пул потоков во время ожидания.

Не могли бы вы предоставить более подробную информацию о требуемом решении для более точного ответа?

...