首页 新闻 会员 周边

C#实现多任务下载

0
悬赏园豆:50 [已解决问题] 解决于 2008-12-05 14:21

近段时间想自己做个多线程的抓取程序

经过研究抓取问题已经解决,现在想实现多个任务同时抓取,主要是为了提高抓取效率。

本人对C#多线程没有怎么接触过,所以还请各位指点。

具体实现结果:

1、任务列表里有多个任务(如:xxx.com/0001.html,xxx.com/9999.html)

2、要求同时创建多个线程(如:5个),每个线程抓取一个网页地址,如下对应关系:

Thread1  --  xxx.com/0001.html
Thread2  --  xxx.com/0002.html
Thread3  --  xxx.com/0003.html
Thread4  --  xxx.com/0004.html
Thread5  --  xxx.com/0005.html

当线程1-5中某个线程抓取完毕,自动创建一个新的线程对应地址 xxx.com/0006.html

可能涉及到的问题:获取活动线程数,获取状态为未抓取的临近目录

类似迅雷多任务下载的效果。

希望各位能够帮忙解答一下,

如能给出类似代码最佳,否则给出相应资料也可。

感激不尽

 

 

秦奋的主页 秦奋 | 初学一级 | 园豆:95
提问于:2008-11-27 10:29
< >
分享
最佳答案
0

你可以考虑采用线程池来管理多线程。

参见下面资料

http://msdn.microsoft.com/zh-cn/library/3dasc8as(VS.80).aspx

eaglet | 专家六级 |园豆:17139 | 2008-11-28 06:34
其他回答(2)
0

我知道你要是做下载时,IE是有限制的,最多只能同时下载两个,如果安装过一些下载软件的话如迅雷,是可以最多10个的,服务器上安装下载软件是不太现实的,所以,你可以通过更改注册表来解决IE下载支持的最大数。

金鱼 | 园豆:1090 (小虾三级) | 2008-11-27 11:43
0

你可以new 出一个Thread,然后做抓取,你遇到的问题在哪儿?

玉开 | 园豆:8822 (大侠五级) | 2008-11-27 14:20
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册