Как использовать WebClient для параллельной загрузки страниц - C#

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

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

Время доброе. Кто может подсказать, как использовать WebClient для параллельной загрузки страниц. При данном способе время выполнения примерно 25 минут. Если запустить одновременно 2 программы (в каждой закачивается только один сайт) то общее время выполнения 16 минут. И, судя по загруженности канала во втором случаи, трафик потребляется в 2 раза больше, чем в первом (5 Мбит/с против 10 Мбит/с)
Листинг программы
  1. class MainDownloader
  2. {
  3. private void StartMainDownloader()
  4. {
  5. Parallel.Invoke(
  6. () =>
  7. {
  8. string webPath = "Path_1";
  9. Downloader DL_1 = new Downloader(webPath);
  10. DL_1.Start();
  11. },
  12. () =>
  13. {
  14. string webPath = "Path_2";
  15. Downloader DL_2 = new Downloader(webPath);
  16. DL_2.Start();
  17. }
  18. );
  19. }
  20. }
  21. class Downloader
  22. {
  23. private string webPath;
  24. private List<string> MyList;
  25. void Downloader(string newPath)
  26. {
  27. webPath = newPath;
  28. }
  29. public void Start()
  30. {
  31. WebClient wClient = new WebClient();
  32. MyList = new List<string>;
  33. string page;
  34. for (int i=1; i<=1000; i++)
  35. {
  36. page = wClient.DownloadString("http://www."+webPath+".com/Page_nummer_"+i+".html");
  37. MyList.add(page);
  38. }
  39. }
  40. }

Решение задачи: «Как использовать WebClient для параллельной загрузки страниц»

textual
Листинг программы
  1. await Task.Factory.StartNew(() =>
  2. {        
  3.     using(WebClient wClient = new WebClient())
  4.     {
  5.     }
  6. }

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


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

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

10   голосов , оценка 4.1 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут
Похожие ответы