CPU使用率避免100%使用Environment.ProcessorCount



我想知道这是否能避免100%的CPU使用。

Environment.ProcessorCount将返回逻辑处理器计数,在我的情况下是i7 4个实核8个逻辑处理器。在其他一些情况下,情况可能有所不同。但重要的是CPU使用率。如果我使用我的应用程序来使用Environment.ProcessorCount内核,它将在我的电脑上使用100%。如果我使用怎么办

string lesscpu=环境处理器计数-1;

因此,请删除1个核心。在我的电脑上,它将是7核和大约80-90%的CPU使用率。在其他一些情况下:

2核2逻辑=1=50%cpu

2核4逻辑=3=70%+cpu

2核6逻辑=5=70%+cpu

这是真的吗?

更新:

这种繁重的工作发生在我空闲的时候,当我回来的时候,程序会切换到1个线程。。。我担心,如果我把它放在所有核心的100%CPU上很长时间,我的电脑可能会过热并重新启动,甚至更糟?。。。

购买一个好的处理器然后不使用它的功能是非常重要的。如果你观察到100%的cpu利用率,那么你就有信心做到这一点正确。你得到了的报酬,你编写了一个程序,可以最大限度地提高线程的并发性。干得好

你唯一可能犯的错误是没有降低线程优先级。如果你关心其他程序在争夺处理器时不会变得迟缓,这一点很重要。

看看SO问题如何在C#中获得CPU使用率?。您也可以设置线程的优先级,如SO中所述。如何限制C#程序的CPU使用率?您可能还想使用C#.NET查看带有图形指示的CPU使用情况。