标题:求助:文件下载时,进度条卡顿。
只看楼主
sdgzs
Rank: 1
等 级:新手上路
帖 子:17
专家分:0
注 册:2012-11-23
结帖率:100%
已结贴  问题点数:20 回复次数:5 
求助:文件下载时,进度条卡顿。
进度条在30时下载文件,这时进度条卡住。怎样改进能在下载时进度条不卡呢,不说大神支招多谢帮助。
VB6.0.rar (1.52 KB)
搜索更多相关主题的帖子: 文件 进度条 改进 
2022-10-12 08:27
约定的童话
Rank: 9Rank: 9Rank: 9
等 级:贵宾
威 望:47
帖 子:190
专家分:1061
注 册:2021-8-1
得分:10 
60%左右停顿2秒,然后继续下载,整体还算流畅....
2022-10-12 08:45
sdgzs
Rank: 1
等 级:新手上路
帖 子:17
专家分:0
注 册:2012-11-23
得分:0 
能否用代码改进不让卡顿。
2022-10-12 08:56
吹水佬
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:432
帖 子:10064
专家分:41463
注 册:2014-5-20
得分:10 
因定时器(Timer)不是多线程过程,只是主线程中的消息过程,而且优先级较低。
可以在 URLDownloadToFile 最后一个参数(回调函数)中处理
 
2022-10-12 14:45
sdgzs
Rank: 1
等 级:新手上路
帖 子:17
专家分:0
注 册:2012-11-23
得分:0 
这个没有接触过,能帮写一下代码吧
2022-10-12 15:20
吹水佬
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:432
帖 子:10064
专家分:41463
注 册:2014-5-20
得分:0 
回复 5楼 sdgzs
URLDownloadToFile的最后一个参数要构建一个IBindStatusCallback接口对象
有个第三方的类型库 olelib.tlb 可以实现 IBindStatusCallback 接口对象实例
但使用类型库 olelib.tlb,因是第三方的东东,存在维护和分发外部依赖的问题

建议:调用 windows 的 wininet.dll API
主要调用:
InternetOpen 和 InternetOpenUrl 开始下载
HttpQueryInfoLong 获取内容长度
重复调用 InternetReadFile 将数据读入缓冲区(如使用128k缓冲区),将数据写入文件并随时更新进度条。

也可以考虑多线程或多进程来实现

2022-10-13 07:57



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-510278-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.057223 second(s), 9 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved