我昨天写了一个小程序,从一个网站取网页回来,然后把源码进行分析,提取所需要的数据,然后存入数据库。一个很简单的小程序吧,结果发生了很搞笑的事情。程序取网页取到一定数量的时候(不确定是多少,有时多有时少),然后程序会死掉,没动静,CPU占用50%(我的双核)
然后,程序没法自己关掉,只好结束任何。但是,问题来了,下次再启动这个程序时,就报错,启动不了,是那种直接出来要调试的那种,根本不知道错误是什么,汗。我备份过程序的二进制代码,保证程序本身没有任何问题。在程序执行过程中没有任何地方有机会更改程序自己(汗,程序自己更改自己?程序执行的时候应该是只读的吧)百思不得其解之余,打开 delphi ,重新生成.exe,运行,又OK了。过一段时间,又锁死了,结束之,进delphi重新生成,又OK了。MD,这算怎么回事?

解决方案 »

  1.   

    可能是你的程序里调用了某些东西,在非正常关闭的时候,这些东西没有被释放,而在重新编译的时候delphi帮你初始化掉了.
    最好检查你的代码,才用多线程来处理下载分析数据看看
      

  2.   

    非正常退出可能没有FREE一些数据吧.
      

  3.   


    我刚重启过电脑,这下所有的东西都free掉了吧?结果还是一样。
      

  4.   


    多线程意义不大,我需要单线程。我重启过电脑,所有的东西都free掉了才对。
      

  5.   

    呵呵,被windows加入黑名单了?