我有一个C#小程序开了十几个线程,都在运行很占CPU的操作.现在这个小程序如果放在双核的电脑上,两个核都用满100%
放在4核的电脑上,4个核就都用满
放在有两个4核CPU的电脑上,那个8个核都用满.总之就是无论电脑有几个核,全部占满,总CPU使用率都是100%.现在我希望它只占用1-2个CPU,这样放在4核电脑上运行,就只会占用50%的CPU,不至于把电脑卡死.
我记得以前看过可以在VS里进行设置,指定程序占用CPU个数的.但现在找不到了.有人知道怎么设置吗

解决方案 »

  1.   

    既然是"都在运行很占CPU的操作",那么根据当前CPU个数,开操作线程不就可以了?
    Environment.ProcessorCount
      

  2.   

    1 希望能腾出CPU给其他程序的话,可以尝试设置线程优先级
    Thread.CurrentThread.Priority = ThreadPriority.Lowest; 2 程序应尽快完成任务,限制CPU与此目的违背,若没有别的需要CPU资源,没必要限制(也就是第一点了)
    代码优化上,比如你用一个while true循环做轮询,1秒一次就够了,就应该在每次轮询后sleep一下,这就是最该考虑的优化点。3 还是要限制CPU的话,看看 这个
      

  3.   


    现在我就是想尽快地运行我需要的东西,但不是100%都用来运行它,留那么少量的CPU去做其他事,不让系统卡死.