Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > .NET Frameworks (точка нет фреймворки) > Общие вопросы .NET
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 08.12.2012, 18:11   #1
coNsept
Форумчанин
 
Аватар для coNsept
 
Регистрация: 14.12.2009
Сообщений: 716
По умолчанию WebClient.DownloadFileAsync - не полное скачивание файлов

Ребят, таков вопрос. Читаю rss ленту и получаю прямую ссылку на картинку.

Далее WebClient/ом асинхронно пытаюсь скачать все картинки, эдак штук 8-9. Но бывают моменты когда картинки загружаются не полностью, как повезет вообщем. Как собственно решить данную проблему? За ранее спасибо за любую подсказку.

Код:
  void GetSmallImage()
  {
    XmlTextReader _XmlTextReader = new XmlTextReader("************");
    _XmlTextReader.WhitespaceHandling = WhitespaceHandling.None;

    while (_XmlTextReader.Read())
    {
     if (_XmlTextReader.IsStartElement())
     {
      switch (_XmlTextReader.Name)
      {
       case "enclosure":
        {
         if (_XmlTextReader.HasAttributes)
         {
          string ImageLink = _XmlTextReader[0];

          WebClient _WebClient = new WebClient();

          _WebClient.DownloadFileAsync(new Uri(ImageLink), ".\\Data\\" + System.IO.Path.GetFileName(ImageLink));

          _WebClient.DownloadFileCompleted += new AsyncCompletedEventHandler(_WebClient_DownloadFileCompleted);
         }
        }
        break;
      }
     }
    }
  }
Код:
   Thread _ImageTh = new Thread(new ThreadStart(delegate()
    {
     _Mutex.WaitOne();

     this.GetSmallImage();

     _Mutex.ReleaseMutex();
    }));
   _ImageTh.SetApartmentState(ApartmentState.STA);

   _ImageTh.Start();

Последний раз редактировалось coNsept; 08.12.2012 в 18:17.
coNsept вне форума Ответить с цитированием
Старый 09.12.2012, 14:53   #2
coNsept
Форумчанин
 
Аватар для coNsept
 
Регистрация: 14.12.2009
Сообщений: 716
По умолчанию

Если кому интересно, не полная загрузка происходила потому что событие DownloadFileAsync не успевал скачать одну картинку в то время как следующая итерация цикла подсовывала ему следующую картинку.
Иногда конечно картинки успевали загрузится все, я думаю здесь понятно почему.
Поэтому в моем случае простой метод -> DownloadFile это то что мне нужно, то есть пока файл не скачается полностью, к следующему проходу в цикле мы не перейдем.
Всем спасибо, возможно это кому-то будет полезно.
coNsept вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Скачивание файлов в поддиректории user__ PHP 7 11.12.2011 21:28
Скачивание файлов из интернета JonMagon Помощь студентам 1 02.05.2011 15:37
Скачивание файлов с Ucoz. Casper-SC Общие вопросы .NET 1 19.12.2010 17:56
скачивание файлов с FTP L.Morgan Работа с сетью в Delphi 2 14.04.2009 10:14
Скачивание файлов с сайта sklazer Работа с сетью в Delphi 4 10.08.2008 23:16