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

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

做你要问的最好方法可能就是实现你自己的通话超时。

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

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