用C#实现蜘蛛/爬虫程序的多线程控制(2)
[@more@]3.线程结束是很难判断的,因为它总是在查找新的链接。用者认为可以假设:线程重复N次以后还是没有能申请到新的Url地址,那么可以认为它已经下载完了所有链接。主要代码如下:
string url = ""; if ( times > N ) //如果已经尝试够了次数,则退出进程 else//如果没有尝试够次数 |
4.这个问题相对简单,因为在问题一中已经建议,将线程声名为类级数组,这样就很易于控制。只要用一个for循环即可结束。代码如下:
for( int i = 0; i < n; i++ )//关闭指定数量n的线程数 |
好了,一个蜘蛛程序就这样完成了,在C#面前,它的实现原来如此简单。
这里笔者还想提醒读者:笔者只是提供了一个思路及一个可以实现的解决方案,但它并不是最佳的,即使这个方案本身,也有好多可以改进的地方,留给读者思考。
最后说明一下我所使用的环境:
winXP sp2 Pro
VFP 9.0
Visual Studio 2003 .net中文企业版
来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/7839366/viewspace-920513/,如需转载,请注明出处,否则将追究法律责任。
转载于:http://blog.itpub.net/7839366/viewspace-920513/