我在work线程A中动态增加B类线程,B类线程完成分布计算工作,B类线程是通过调用dll中的导出类C来工作的,但是C类中又有线程进行工作!这样,在我每次动态增加B类线程的时候,CPU就是100%;但是我想在线程中工作,cpu再涨也不会到100%的!请各位指教!

解决方案 »

  1.   

    线程里肯定有循环,在循环中加个间歇就可以,Sleep(50),具体数字自己根据需要调节
      

  2.   

    同意 luoxiangdong(快乐的2004) 
    线程循环中,加入Sleep(XXX),让出一部分cpu时间。
      

  3.   

    但是我都是基于异步事件等待机制,当我单独使用含有静态线程函数的时候完成我想完成的工作时,他很安静的工作,不会出现什么bug,但是我利用STL或是数组动态管理这些含线程类实例时就出现了问题,刚开始是类实例化,构造函数正确执行,但是就是不能insert到map中,后改用数组手工管理,这以后就是CPU的使用100%!十分郁闷 也很恼火!单步跟踪 print trace 都无济于事!请高手指点,在含有静态线程的类里启动含有静态线程的类,有什么需要注意的和应该用到的技术细节!请大虾不吝赐教!
      

  4.   

    多线程不能用单步跟踪,最好用TRACE("...");进行跟踪.
      

  5.   

    1、程序设计不合理
    2、代码BUG
      

  6.   

    线程中的While循环中如果不使用内核对象的方式来通知是否执行而是主动查询的话,肯定要Sleep一段时间,让出一部分CPU时间片断的。
      

  7.   

    只要你的鼠标还能打开我的电脑, 100%应该是很正常吧
    同意楼上说的, 可以加些sleep, 或者是一下降低优先级
      

  8.   

    试试在相应的地方加上SwitchToThread()