我有一个小应用程序,从远程(HTTP)服务器下载一些文件到用户本地硬盘驱动器,一些文件很大,但我不知道在运行时有多大.有没有什么方法可以让我下载带有某种进度表的文件?
这是一个WinForms应用程序,现在我正在使用WebClient.DownloadFile()来下载文件.
编辑:我查看了DownloadProgressChanged和OnDownloadProgressChanged事件,它们似乎工作正常,但它们不适用于我的解决方案.我正在下载几个文件,如果我使用WebClient.DownloadFileAsync,那么事件会被调用几次/秒,因为每个文件都会调用它.
这是应用程序的基本结构:
我不介意单独下载每个文件,但没有使用DownloadFileAsync()下载它我不能使用事件处理程序.
使用WebClient.OnDownloadProgressChanged.请记住,如果服务器预先报告大小,则只能计算进度.
编辑:
查看您的更新,您可以尝试创建一个URL 队列.然后,当文件完成下载(DownloadDataCompleted事件)时,您将启动队列中下一个URL的异步下载.我没有测试过这个.