各位仁兄:我用DELPHI写了一个线程计算1到20万的和,为什么CPU的占有率几乎为100%,但是我用VC++写却不到30%,希望大家帮个忙。谢谢

解决方案 »

  1.   

    cpu占有率高,执行速度快;
    在创建线程时,有参数可以设定优先级
      

  2.   

    TThread.Priority := tpLowest;设置线程的优先级,
      

  3.   

    设置TThread.Priority分为1 2 3 4 5级
    默认是3
      

  4.   

    你是不是用
    while not terminated do 这种结构。如果是的,在循环中加句sleep(10)试试
      

  5.   

    我也设置了优先级,但好象没有用,上面仁兄的用SLEEP是有一点用处,但是,我需要子线程不停的工作呀,
      

  6.   

    没关系的,他全占用了,说明没人要和他枪,他自然就全拿过来用了,你试试你的机子应该不是死机状对吧。如果你实在想要降低他的利用率,那你可以用timer或者想深空说的加sleep一类的东西,或者加入Application.ProcessMessage.等等不过觉得没必要费要降低他。
      

  7.   

    不停的工作然后还要不全占用CPU怎么可能?
    让你不停的工作但是一天不许工作24小时可能吗?除非你偷懒中途sleep一下或者去干点别的自己的事情!对不对!