想控制一组线程不能超过一定的CPU时间,如何控制?

解决方案 »

  1.   

    跟线程中具体执行的任务相关
    可以使用SetTimer通过回调函数结束线程
      

  2.   


    我说的是CPU时间
    不是线程运行多长时间
      

  3.   

    可以参考 Sleep(0)
    和 WaitForSingleObject
      

  4.   

    谢谢空气
    我说的是,比如用一个Job Object 可以控制一个或一组进程的CPU时间 比如限制在 80%以内,但是没有找到有控制一个线程的,如果用Sleep会影响总体性能的吧?其他不是来回答问题的就不要来了。
    就怕遇到那些变态,今天还是遇到了,这里变态真多,估计水平也好得有限
      

  5.   

    线程对CPU进行抢占式的,想精确控制,不容易吧
      

  6.   

    如果一个工作密集的进程中没有包含几个Sleep的调用,那这个进程很可怕哦。
    个人觉得可以用Sleep()来控制CPU的占用率
      

  7.   

    我知道得到cpu时间用GetTickCount,你说的恐怕很难办,你想控制一定的cpu时间恐怕需要有事件触发,我们虽然知道了cpu事件,可是没有事件触发,所以不能实现精确的控制,如果只要大致的cpu时间,可以用循环加Sleep。
      

  8.   

    在非服务器版本的系统中要实现这个功能可能是非常困难的
    在非服务器系统版本中也许可以通过一个独立线程来监测CPU的使用率然后分别 SupspendThread 和 ResumeThread,但这种作法是非常不准确的