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

时间:2013-08-10 17:49:23

标签: c# cpu

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

Environment.ProcessorCount将返回Logical Processors Count,在我的情况下i7 4真核8个逻辑。在其他一些情况下,它可以不同。但重要的是CPU使用率。如果我使用我的应用程序来使用Environment.ProcessorCount核心,它将在我的PC上使用100%。怎么办

  

string lesscpu = Environment.ProcessorCount - 1;

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

2核2逻辑= 1 = 50%cpu

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

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

这是真的吗?

更新:

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

2 个答案:

答案 0 :(得分:4)

购买一个好的处理器,然后不使用它的功能,非常点。如果您观察到100%的cpu利用率,那么您可以自信地做到正确。你得到了你为付出的代价,你编写了一个从线程中获得最大并发性的程序。做得好。

你唯一可能犯的错误就是不要降低Thread.Priority。如果您关心其他程序在竞争处理器时不会变得迟钝,那么这一点非常重要。

答案 1 :(得分:1)

看看SO问题How to get the CPU Usage in C#?。您也可以设置SO How to restrict the CPU usage a C# program takes?中提到的线程的优先级。您也可以查看CPU Usage with graphical indication using C# .NET