十年网站开发经验 + 多家企业客户 + 靠谱的建站团队
量身定制 + 运营维护+专业推广+无忧售后,网站问题一站解决
我告诉你思路,你自己去实现。
为甘州等地区用户提供了全套网页设计制作服务,及甘州网站建设行业解决方案。主营业务为成都网站设计、成都网站建设、甘州网站设计,以传统方式定制建设网站,并提供域名空间备案等一条龙服务,秉承以专业、用心的态度为用户提供真诚的服务。我们深信只要达到每一位用户的要求,就会得到认可,从而选择与我们长期合作。这样,我们也可以走得更远!
建议你用“守护线程”的方式去做,这样做对于你一个小任务来说更合适。首先,你要建立一个队列,将所有下载任务放入队列。注意,这个队列必须是“线程安全”的,即两个线程不会抢到同一个任务。然后只开10个线程。这些线程会从队列中读取任务。当一个线程不能再从队列中读取任务时,也就是队列为空时,退出。等所有线程都退出后,你的程序就结束了。
还有一种方法,叫“线程池”,也就是你说的方法,稍微复杂一点:
指定一个变量,用来表示线程的数量。刚开始为0,每开一个线程+1。当一个线程完成任务退出后,这个变量-1。直到所有任务都完成后,不再产生新线程。
首先,是这样的,你要是只是想实现类似迅雷下载列表的功能,还是可以的,但是,要是在展现也就是说界面上的样子,也和迅雷的一样,那你就要自己重绘窗体还要结合美工技术才能做出来。
如果只是实现功能,可以看一下的讲解:
进度条的问题:如果只是一个进度条,那就不用多线程技术,因为只控制一个进度而已,如果向迅雷那样,实时的显示多个进度,那就要多个线程了,一个线程控制一个进度。
记录文档用何种方式:这个其实很简单,如果,你要是有数据库,那就最好存在数据库中,方便存储管理,网络数据库的话,有很多中,比如Mysql,oracle,本地数据有sqlite,access等,要是采用文件存储的话,可以用ini文件,xml文件或是简单点直接文本文件也是可以的。
下载完的记录加载到已完成列表,没下载完的记录自动加载到下载列表
其实这个也不难的,在控制进度的条的方法中,增加一if判断,如果能100%就将信息加载到完成列表,在判断中计数如果多次判断都没有进度,就认为文件现在失败,就在现在信息添加到未完成列表。
以上只是分析实现过程,实例的话,那会很多,也很复杂,以上内同纯手打,如果您觉得满意,请采纳我的回答,也不枉费我这么认真分析,多谢了。
t1 = New Threading.Thread(AddressOf sDownFile) 你这句都没代入参数啊。
改成这样试试 t1 = New Threading.Thread(AddressOf sDownFile(参数1,参数2))