Несколько одновременных сетевых загрузок в разных потоках - C#

Узнай цену своей работы

Формулировка задачи:

Создается произвольно количество потоков с сетевыми обращениями
WebRequest myWebRequest=WebRequest.Create("...");
...
WebResponse myWebResponse=myWebRequest.GetResponse();
Файлы для скачивания бывают достаточно большими (несколько мб) - вот я и заметил, что одновременно больше двух скачиваний не происходит (как только два потока доходят до GetResponse - ну обращаются к ответу - все остальные весят пока не получат ошибку Timeout (если файлы большие и таймаут маленький)). От чего это может зависеть? Проверял на разных серверах, результат тот же. После GetResponse идет запись в поток файла и вывод, если ставлю после GetResponse блокировку потока, все остальные все ведут себя так же, как и без блокировки. Как лучше организовать и синхронизировать большое кол-во потоков. Просто бывают ситуации, когда качаются большие файлы, а из-за них не начинают скачиваться несколько маленьких. Заранее задавать последовательность файлов невозможно.

Решение задачи: «Несколько одновременных сетевых загрузок в разных потоках»

textual
Листинг программы
myHttpWebResponse.Close();

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

14   голосов , оценка 3.929 из 5
Похожие ответы