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

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

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

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

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

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

ИИ для рефератов и докладов


  • Экспорт Word по ГОСТу
  • Минимум 80% уникальности текста
  • Поиск релевантных источников в интернете
  • Готовый документ за 2 минуты

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

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