我正在使用WebClient的DownloadFileAsync(在C#中)方法异步下载文件 . 我有事件处理程序附加到DownloadProgressChanged和DownloadFileCompleted事件 . 我希望通过DownloadFileCompleted事件处理程序中的AsyncCompletedEventArgs的Error属性收到任何错误的通知 . 如果在下载开始之前没有连接,它可以很好地工作 . 它错误地解决了,我在上面提到的属性中得到了错误 . 但是如果在下载过程中连接断开,则不会发生任何事情 . 事件处理程序未被调用,它会一直等待 . 我该怎么办才能处理这种情况?谢谢 .
1 回答
做你要求的最好的方法可能是实现你自己的呼叫超时 .
基本上,创建一个每次触发DownloadProgressChanged事件时都会重置的计时器 . 这样,如果您在超时期限内没有获得任何进度更新,您可以在WebClient上调用CancelAsync命令,这样您就不会永远等待 .
这是我能够做到的唯一方法 .