блокирует слишком много времени, затем вы начинаете получать узкие места, так как «обратный вызов» в ContinueWith выполняется из рабочего пула потоков.
ом из моих проектов, который является своего рода агрегатором, я анализирую каналы, подкасты и т. Д. Из Интернета.
Если я использую последовательный подход, учитывая большое количество ресурсов, то на их обработку уходит довольно много времени (из-за сетевых проблем и тому подобного);
foreach(feed in feeds)
{
read_from_web(feed)
parse(feed)
}
Поэтому я хочу реализовать параллелизм и не могу решить, следует ли мне использовать ThreadPools для обработки рабочих потоков или просто полагаться на TPL для его сортировки.
ThreadPools наверняка справится со мной с помощью рабочих потоков, и я получу то, что ожидаю (а в средах с многоядерными процессорами также будут использоваться и другие ядра).
Но я все еще хочу рассмотреть TPL, поскольку это рекомендуемый метод, но я немного обеспокоен этим. Прежде всего я знаю, что TPL использует ThreadPools, но добавляет дополнительный уровень принятия решений. Меня больше всего беспокоит состояние, когда присутствует одноядерная среда. Если я не ошибаюсь, TPL начинается с количества рабочих потоков, равного количеству доступных процессорных ядер в начале версии. Я боюсь, что TPL даст результаты, аналогичные последовательному подходу для моего случая, связанного с IO.
Так что для операций, связанных с вводом-выводом (в моем случае чтение ресурсов из Интернета), лучше ли использовать ThreadPools и контролировать вещи, или лучше просто полагаться на TPL? Может ли TPL также использоваться в сценариях, связанных с вводом-выводом?
Обновить: Моя главная проблема в том, что -на одноядерном процессоре будет ли среда TPL вести себя как последовательный подход или все же будет предлагать параллелизм? Я уже читаюПараллельное программирование с Microsoft .NET и таккнига но не смог найти точного ответа на это.
Примечание: это перефразировка моего предыдущего вопроса [Можно ли использовать параллелизм потоков и параллелизм вместе? ] что было довольно неправильно сформулировано.