我想写一个转码的小东西,可是每次我的测试数据一大,CPU就容易升的很高,有没有什么办法让程序即使是要做很大量的运算的时候也仅仅只是占用10%左右的CPU呢?
------解决思路----------------------
sleep只是让CPU解放出来干些别的,但是它到底休息了多长时间,就由不得你了
你可以写Thread.Sleep(1)这样的代码,但是CPU不会刚好休息1ms就马上回来继续执行你的程序
一般能精确到15ms已经很不错了
所以如果你用了sleep,不要说稳定在10%,有可能连1%都达不到
机器配置低,还想同时干好几件事情,我觉得你可以这样做:
不要每次循环都sleep,弄个int变量计数,然后执行10000次就sleep一下
多测试几次,看这个数定成多大合适
------解决思路----------------------
用线程,然后当中适当的Thread.Sleep一下
------解决思路----------------------
可以在运行时候打开进程管理器,设置进程优先级为低