求一个循环下载的思路! ( 积分: 100 )

  • 主题发起人 主题发起人 九月天
  • 开始时间 开始时间

九月天

Unregistered / Unconfirmed
GUEST, unregistred user!
我的想法是这样:
比如我现在要下载100个文件,这些文件是A001.rar..A100.rar;
程式充许同时三个线程下载三个文件,比如现在(A001.rar .. A003.rar)Downloading...
当其中一个文件下载完成后将会继续A004.rar, 逐个这样循环下载。
这样的循环方式应该如何编写呢?
 
Var Index:Integer;
全局变量
do
wnLoad('A001.rar');
do
wnLoad('A002.rar');
do
wnLoad('A003.rar');
Index:=3;
某个线程下载结束时候
Index:=INdex+1;
if Index<=100 then
begin

Str(Index,FileName);
While Length(FileName)<3do
FileName:='0'+FileName;
FileName:='A'+FileName+'.rar';
do
wnLoad(FileName);
end;
可以吗?
 
谢谢,但这不是我想要的结果,因为我只是打个比喻有A100个文件,如果我是AAAA.rar,BBBB.rar,AABBCC.rar等文件名呢,
当然他们都会保存在一个记录文件或者数据库中,并且会显示在listview上,我是想如何从记录文件或者数据库全部下载下来!
 
呵呵,index只是记录当前下载到的位置
还有啊,你这个自己都写不出来?
 
在线程中有一个函数可以判断文件是否下载完成,你也可以加标志,
 
这里我有点疑问,DownLoad不是阻塞的,那么线程下载结束后在怎么释放线程对象,来从新开始另外一个文件的下载呢?在Onterminate事件里是不能释放线程对象的,如果吧DownLoad做成是阻塞的,则不能满足同时下载的要求了
 
建议使用cnpack的县城池吧
 
对,用cnPack的线程池
 
后退
顶部