Учу C#
Надо:
1. загрузить веб-страницу
2. вытащить из html-кода адреса всех изображений
3. загрузить все изображения на локальный компьютер, запустив загрузку каждого в отдельном потоке
Проблемы с 3 пунктом, изображения не грузятся, иногда (не всегда) вылезает сообщение об ошибке COM враппера.
Код:
static void Main()
{
... (тут выполнение первых двух пунктов)
foreach (HtmlElement cimg in imgs)
{
System.Random rndm = new Random();
int randn = rndm.Next(0, 1024);
Thread thr = new Thread(delegate() { loadimg(cimg.GetAttribute("src"), string.Concat("C:\\csh\\", randn.ToString(), ".gif")); });
thr.Name = randn.ToString();
thr.Start();
}
...
}
static void loadimg(string img_url, string save_path)
{
Console.WriteLine("Thread {1}: Downloading {0}...", img_url, Thread.CurrentThread.Name.ToString());
WebClient wcl = new WebClient();
Uri url = new Uri(img_url);
wcl.DownloadFileAsync(url, save_path);
wcl.DownloadFileCompleted += new System.ComponentModel.AsyncCompletedEventHandler(wcl_DownloadFileCompleted);
}
static void wcl_DownloadFileCompleted(object sender, System.ComponentModel.AsyncCompletedEventArgs e)
{
Console.WriteLine(" 100% ");
}
RPI.su - самая большая русскоязычная база вопросов и ответов. Наш проект был реализован как продолжение популярного сервиса otvety.google.ru, который был закрыт и удален 30 апреля 2015 года. Мы решили воскресить полезный сервис Ответы Гугл, чтобы любой человек смог публично узнать ответ на свой вопрос у интернет сообщества.
Все вопросы, добавленные на сайт ответов Google, мы скопировали и сохранили здесь. Имена старых пользователей также отображены в том виде, в котором они существовали ранее. Только нужно заново пройти регистрацию, чтобы иметь возможность задавать вопросы, или отвечать другим.
Чтобы связаться с нами по любому вопросу О САЙТЕ (реклама, сотрудничество, отзыв о сервисе), пишите на почту [email protected]. Только все общие вопросы размещайте на сайте, на них ответ по почте не предоставляется.