首页 文章

WebClient异步下载文件时检测连接丢失(在C#中)

提问于
浏览
8

我正在使用WebClient的DownloadFileAsync(在C#中)方法异步下载文件 . 我有事件处理程序附加到DownloadProgressChanged和DownloadFileCompleted事件 . 我希望通过DownloadFileCompleted事件处理程序中的AsyncCompletedEventArgs的Error属性收到任何错误的通知 . 如果在下载开始之前没有连接,它可以很好地工作 . 它错误地解决了,我在上面提到的属性中得到了错误 . 但是如果在下载过程中连接断开,则不会发生任何事情 . 事件处理程序未被调用,它会一直等待 . 我该怎么办才能处理这种情况?谢谢 .

1 回答

  • 7

    做你要求的最好的方法可能是实现你自己的呼叫超时 .

    基本上,创建一个每次触发DownloadProgressChanged事件时都会重置的计时器 . 这样,如果您在超时期限内没有获得任何进度更新,您可以在WebClient上调用CancelAsync命令,这样您就不会永远等待 .

    这是我能够做到的唯一方法 .

相关问题