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, если произошла ошибка.