频道直达 - 专题 - 新闻 - 技巧 - 组网 - 开发 - 安全 - web编程 - 图像 - 操作系统 - 数据库 - 教育 - 旅游 - 健康 - 时尚 - 驱动 - 软件 - 游戏 - 多媒体 - ERP - 讨论组

用C#实现蜘蛛/爬虫程序的多线程控制

来源:Csdn博客 作者:Felomeng 出处:巧巧读书 2007-07-20 进入讨论组
上一页 1 2 

3.线程结束是很难判断的,因为它总是在查找新的链接。用者认为可以假设:线程重复N次以后还是没有能申请到新的Url地址,那么可以认为它已经下载完了所有链接。主要代码如下:

string url = "";

int times = 0;

while ( url == "" )//如果没有找到符合条件的记录,则不断地寻找符合条件的记录

{

url = getUrl.GetAUrl( …… );//调用GetAUrl方法,试图得到一个url值

if ( url == "" )//如果没有找到

{

times ++;//尝试次数自增

continue; //进行下一次尝试

}

if ( times > N ) //如果已经尝试够了次数,则退出进程

{

downloadThread[i].Abort; //退出进程

}

else//如果没有尝试够次数

{

Times = 0; //尝试次数归零处理

}

//进行下一步针对得到的Url的处理

}

4.这个问题相对简单,因为在问题一中已经建议,将线程声名为类级数组,这样就很易于控制。只要用一个for循环即可结束。代码如下:

for( int i = 0; i < n; i++ )//关闭指定数量n的线程数

{

downloadThread[i].Abort();//逐个关闭线程

}

好了,一个蜘蛛程序就这样完成了,在C#面前,它的实现原来如此简单。

这里笔者还想提醒读者:笔者只是提供了一个思路及一个可以实现的解决方案,但它并不是最佳的,即使这个方案本身,也有好多可以改进的地方,留给读者思考。

最后说明一下我所使用的环境:

winXP sp2 Pro

VFP 9.0

Visual Studio 2003 .net中文企业版

来源链接:http://tb.blog.csdn.net/TrackBack.aspx?PostId=1522892

收藏地址:http://www.qqread.com/csharp/d300694.html进入讨论组讨论。
上一页 1 2 
收藏此文】【 】【打印】【关闭
相关图文阅读
频道图文推荐
健 康 咨 询
时 尚 咨 询
巧巧读书宗旨
相关专题
讨论组问题推荐
站内各频道最新更新文档
站内最新制作专题
热门关键字导读
Photoshop教 程照片处理 照片制作 PS快捷键 抠图
计 算 机 故 障XP系统修复
艺 术 与 设 计设计 流媒体 设计欣赏 边框
计 算 机 安 全ARP
站内频道文章精选
巧巧电脑频道编辑信箱  告诉我们您想看的专题或文章