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

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

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

Thread.CurrentThread.Priority = ThreadPriority.Lowest; 

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

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

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

我想你需要查询某种OS API,以了解你消耗了多少CPU,并从中获取限制决策(如Thread.Sleep)。