Если вы обнаружили, что пул потоков ASP.NET негативно влияет на масштабируемость системы, у вас есть несколько вариантов. Можно изменить верхний предел пула потоков. Как было сказано, верхний предел по умолчанию соответствует 25 рабочим потокам и 25 потокам ввода-вывода. Разумеется, увеличение верхнего предела — решение довольно грубое. Если вы сможете найти магическое число, позволяющее интенсивно использовать процессор и откладывать/отклонять запросы, только когда сервер
действительно слишком занят, чтобы их обрабатывать, считайте, что вам
повезло. Число потоков, необходимое для эффективной загрузки сервера, не является статическим, оно меняется в зависимости от таких факторов, как сложность процессов и их требований.
Другое решение заключается в выявлении запросов, которые требуют много времени для обработки, но не нагружают процессор, и выделении для них отдельных потоков, что позволит освободить пул потоков для обработки дополнительных запросов. Здесь в игру и вступают асинхронные
обработчики.
Асинхронные обработчики
Хотя большинство страниц и обработчиков ASP.NET обслуживается синхронно в потоках из пула уровня процесса, можно создать обработчики (и даже страницы), которые будут обслуживать запросы асинхронно. Асинхронные обработчики
