WebClient DownloadFileAsync зависает

Добрый день. Я работаю над классом загрузки файлов, используя 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 ответ

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

Другие вопросы по тегам