在for循环中下载列表文件时,异步(可能是这么叫)显示进度条和判断下载完成的方法?

randomcic 2017-10-22 09:31:39
论坛的大侠们:
  下面的代码是我从论坛中截取使用的。如果不在for 循环中下载单个文件,进度条的显示和下载完成的判断都是正常的。但是我需要循环下载listbox中的列表文件,我把这些代码放在循环中,这下好了,只能在循环中动作了,跳不出循环无法显示进度条和完成判断了,而且下载也不动了。

  请教各位大侠,像我这种需求该如何解决?麻烦给我详细的代码。(请忽略我的不良编程习惯及很烂的水平)

  一个刚从vb6转战到vb.net的业余爱好vb编程20年的已经40岁的编程老人家上。




Dim myWebClient As WebClient
Private Sub Button2_Click(ByVal sender As Object, ByVal e As EventArgs) Handles Button2.Click, Button5.Click
For n = 0 To ListBox2.Items.Count - 1 'listbox2中存放着需要下载的文件列表

myWebClient = New Net.WebClient
AddHandler myWebClient.DownloadProgressChanged, AddressOf ShowDownProgress '捕获下载进度
AddHandler myWebClient.DownloadDataCompleted, AddressOf DownloadDataCallback '捕获是否下载完成

myWebClient.DownloadDataAsync(New Uri(ListBox2.Items(n)), n.ToString & ".rar")
Next
End Sub

'这里是进度条显示
Private Sub ShowDownProgress(ByVal sender As Object, ByVal e As DownloadProgressChangedEventArgs)
ProgressBar1.Value = e.ProgressPercentage
End Sub

'这里是完成部分
Private Sub DownloadDataCallback(ByVal sender As Object, ByVal e As DownloadDataCompletedEventArgs)
ListBox1.Items.Add(ListBox2.Items(n) & " 下载完成...")
End Sub

...全文
629 1 打赏 收藏 转发到动态 举报
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
xdashewan 2017-10-23
  • 打赏
  • 举报
回复
看看线程和委托的例子,参考http://blog.csdn.net/zhangyubishoulin/article/details/39804745

16,554

社区成员

发帖
与我相关
我的任务
社区描述
VB技术相关讨论,主要为经典vb,即VB6.0
社区管理员
  • VB.NET
  • 水哥阿乐
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧