【问题标题】:System.Net.WebClient.CancelAsync throws ObjectDisposedException -- "Cannot access a closed file."System.Net.WebClient.CancelAsync 抛出 ObjectDisposedException - “无法访问已关闭的文件。”
【发布时间】:2010-07-02 23:57:15
【问题描述】:
我正在尝试使用 WebClient 类异步下载文件。我为 DownloadProgressChanged 和 DownloadFileCompleted 添加了事件处理程序。如果我在下载进度事件处理程序中调用 client.CancelAsync,我会收到一个 ObjectDisposedException,告诉我文件已关闭。如何正确取消异步文件下载?
【问题讨论】:
标签:
c#
asynchronous
webclient
【解决方案1】:
如果文件下载速度足够快以至于在文件关闭后仍在处理进度更改事件,则 WebClient 会抛出、捕获并忽略 ObjectDisposedException。