如何限制C#程序的CPU使用率?

时间:2008-10-30 18:15:07

标签: c# cpu

我正在开发一个C#程序,我有一个消耗太多CPU的功能。我想知道一种通过代码(不使用任何外部应用程序)来控制它的方法,并限制CPU使用率的百分比。 例如,如果它使用90%的CPU使用率,使我的应用程序仅消耗20%,即使它变慢。它必须在应用程序内自动完成。 如果你提供课程,那就太棒了。

3 个答案:

答案 0 :(得分:16)

我不知道你是否可以这样做,但你可以通过Priority属性更改执行线程的线程优先级。您可以通过以下方式设置:

Thread.CurrentThread.Priority = ThreadPriority.Lowest;

另外,我认为你真的不想限制它。如果机器处于闲置状态,你会喜欢它忙于完成任务,对吗? ThreadPriority有助于将其传达给调度程序。

答案 1 :(得分:0)

您可以通过在循环内调用Thread.Sleep(毫秒)来减慢循环速度。这将CPU交给调度程序。

但是“消耗太多的CPU”让我觉得你可能有更多的基本问题。这个线程是否轮询并等待其他内容?如果是这样,您应该考虑使用事件或其他一些基于内核的信令机制。

答案 2 :(得分:0)

我猜你需要查询某种操作系统API,找出你消耗了多少CPU,并从中获取限制决策(如Thread.Sleep)。