各位高人:
    小弟最近做了个小小的Spider程序练练手,无奈运行时不定时出现runtime error问题(XP环境下),另外在2000下也看不到错误地方,郁闷啊!
    主要用到MFC类:CInternetSession和CInternetFile,多线程执行,我认为不是多线程本身的问题!
    下面是文档的一部分,希望大家给予帮助,如果必要的话,我把代码发给大家(不要嫌烂啊!)
    具体实现是这样的:用户可以权衡系统性能与效率来自主决定蜘蛛线程的个数,可以增加,也可以减少。每个蜘蛛线程从自己的开始点(由用户指定)“缓缓爬行”,同时维护一个逐渐增大的URL链表,每次从链表头取出一个URL分析后,一方面把得到的若干URL放入URL链表尾部,另一方面把分析得到的数据结构(URL Title content)放入一个数据队列中(所有蜘蛛共享该数据队列),专门的写数据库线程负责将该数据队列写入数据库!这样就避开了因各个蜘蛛线程由于写数据而频繁与硬盘交换数据而降低效率。
    .

解决方案 »

  1.   

    如果是内存问题,可以看到出错地点,这里应该不是!
    对了,我再提供一点信息:
    如果我把蜘蛛的开始页面(startpage)不从URL队列里面移除,这样的话,事实上就是重复的请求这个页面, 重复的分析这个页面,重复的向数据库写数据.这时,不会出错! 那么我就推测是不是蜘蛛请求某个页面的时候出现了什么异常,我的意思是该页面的问题.
    还请大家讨论一下!