编程论坛
注册
登录
编程论坛
→
VB6论坛
求助:文件下载时,进度条卡顿。
sdgzs
发布于 2022-10-12 08:27, 1335 次点击
进度条在30时下载文件,这时进度条卡住。怎样改进能在下载时进度条不卡呢,不说大神支招多谢帮助。
只有本站会员才能查看附件,请
登录
5 回复
#2
约定的童话
2022-10-12 08:45
只有本站会员才能查看附件,请
登录
60%左右停顿2秒,然后继续下载,整体还算流畅....
#3
sdgzs
2022-10-12 08:56
能否用代码改进不让卡顿。
#4
吹水佬
2022-10-12 14:45
因定时器(Timer)不是多线程过程,只是主线程中的消息过程,而且优先级较低。
可以在 URLDownloadToFile 最后一个参数(回调函数)中处理
#5
sdgzs
2022-10-12 15:20
这个没有接触过,能帮写一下代码吧
#6
吹水佬
2022-10-13 07:57
回复 5楼 sdgzs
URLDownloadToFile的最后一个参数要构建一个IBindStatusCallback接口对象
有个第三方的类型库 olelib.tlb 可以实现 IBindStatusCallback 接口对象实例
但使用类型库 olelib.tlb,因是第三方的东东,存在维护和分发外部依赖的问题
建议:调用 windows 的 wininet.dll API
主要调用:
InternetOpen 和 InternetOpenUrl 开始下载
HttpQueryInfoLong 获取内容长度
重复调用 InternetReadFile 将数据读入缓冲区(如使用128k缓冲区),将数据写入文件并随时更新进度条。
也可以考虑多线程或多进程来实现
1