Я работаю над созданием асинхронного обработчика для ASP.NET, который будет выполнять медленную хранимую процедуру. Я думаю, что понимаю, что для получения дополнительной пропускной способности при смешанной загрузке медленных и быстрых страниц медленная страница должна выполняться в пуле потоков , отдельном от того, который ASP.NET использует , в противном случае асинхронный шаблон приведет к удвоению количества дефицитных нитей (поправьте меня, если я ошибаюсь).
Итак, я нашел System.Threading.ThreadPool
- похоже, это должно сработать, но ...
Различные учебные пособия в сети, такие как этот , который использует пользовательский пул , один из MiscUtils Джона Скита и пользовательский пул потоков, на которые ссылаются в этом руководстве по асинхронным шаблонам .
System.Threading.ThreadPool
существует с 1.1 - почему люди обычно чувствуют необходимость написать новый? Следует ли мне избегать использования System.Threading.ThreadPool
?
Я начинающий, когда дело доходит до многопоточности, так что будьте осторожны с неопределенным жаргоном.
UPDATE . Хранимая процедура, которая будет выполнена, не обязательно будет MS-SQL и не обязательно сможет использовать встроенный асинхронный метод, такой как BeginExecuteNonQuery()
.