У меня есть веб-приложение, в котором сервер работает под кодом C # . Вот что происходит:
- HTTP-прослушиватель ищет входящие запросы от узлов в сети.
- Каждый запрос имеет форму XML-документа (здесь не имеет значения, просто дополнительная информация), который анализируется и отправляется методу, который ставится в очередь на
ThreadPool
с использованием QueueUserWorkItem()
.
Теперь я хочу увеличить моего приложения так, чтобы одновременные запросы от нескольких узлов (до диапазона 8-12 КБ) могли обрабатываться без значительного времени ожидания . Мое приложение в настоящее время зависает и отказывается обрабатывать большое количество запросов (к северу от 1-2к).
Мои нынешние мысли:
- Это просто использование
SetMaxThreads()
для ThreadPool
, это лучшее решение? Если да, как я могу решить, какое значение установить для счетчика?
- Поможет ли использование Task Parallel Library каким-либо образом? Это лучший способ взаимодействия с
ThreadPool
?
Есть ли другие альтернативы, которые я мог бы использовать?