WebClient DownloadFileAsync зависает - PullRequest
       30

WebClient DownloadFileAsync зависает

6 голосов
/ 24 ноября 2011

Добрый день.Я работаю над классом загрузки файлов, используя DownloadFileAsync.В нормальных ситуациях все работает нормально.Но когда я загружаю файл и отключаю сетевое соединение, процесс загрузки просто останавливается на бесконечное время, не вызывая ошибок и не вызывая обратных вызовов.Есть идеи, как справиться с этой ситуацией?Большое спасибо.

_client.Proxy = WebRequest.DefaultWebProxy;
_client.DownloadProgressChanged += (sender, argv) => { actionCallback(argv.ProgressPercentage); }
_client.DownloadFileCompleted += (sender, argv) => { 
      if (argv.Error != null) { 
          _exc = argv.Error;
      } 
      set event
}
 Task.Factory.StartNew(() => {
     _client.DownloadFileAsync(request, targetFileName);

     thread sync

     if (_exc != null) {
         logger.ErrorException(exc);
         throw;
     }

Проблема появляется под Vista и 2k8.На Win7 все ок.

1 Ответ

1 голос
/ 24 ноября 2011

Добавьте обработчик события к событию WebClient.OpenReadCompleted .OpenReadCompletedEventArgs имеет логическое свойство для Error, если произошла ошибка.

...