Один поток для каждого источника - это перебор, чтобы начать, во-вторых, спящие потоки - это потеря ценной памяти. Число потоков> количество ядер не оправдано, если у вас нет данных для поддержки того, что у всех из них будет какая-то работа (или большая часть) времени.
Еще одно соображение, когда вы принимаете решение о количестве нитей, не пытайтесь определить цель в какой-либо теме, то есть в будущем развитии кто-то хочет сделать еще 10 вещей, и он добавит еще 10 потоков для каждой вещи. Таким образом, вы можете проверить taskmanager, сколько плохо спроектированных приложений создает столько потоков (каждый поток = 1 МБ памяти + дополнительный ресурс hog), вероятно, 1 ГБ вашего барана просто натолкнулся из-за того, что было создано столько потоков, и на самом деле ничего полезного и спать большую часть времени. Вот почему Threadpool или Async IO - это способ повторного использования системных потоков, когда они вам нужны, и распределяются между несколькими приложениями.
Последующие мои мысли, у меня будет один поток или таймер, который продолжает работать (и спать, если есть необходимость), а затем делать асинхронные вызовы (не блокировать на один вызов) или очередь, каждый из которых вызывает в Threadpool все источник для обновления, чей период обновления достигнут (тогда, вероятно, он будет спать в течение небольшого промежутка времени, если вам действительно нужно).
Дополнительная информация о Asynchronous IO & Threadpool
Я не думаю, чтобы таймеры, они на самом деле достаточно хорошие (и рекламировать все ответы до сих пор), но источники не должны всегда обновлять на той же частоте или в то же время , – Dave
Вы не указали, что каждый ресурс будет иметь свой собственный тайм-аут. Но все же - у вас может быть много таймеров - попробуйте сгруппировать много ресурсов за один таймер с аналогичными тайм-аутами. Кроме того, если вы собираетесь выполнять тяжелую обработку ответов, не делайте этого в обратном вызове асинхронного запроса, а затем запускайте поток для обработки результатов, поэтому потоки бегущей строки будут освобождены достаточно скоро. –
Ответ изменился с учетом новых требований. Пожалуйста, также отредактируйте свой вопрос. –