Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/multithreading/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C#如何在C中使用多线程将我的CPU限制在80%#_C#_Multithreading - Fatal编程技术网

C#如何在C中使用多线程将我的CPU限制在80%#

C#如何在C中使用多线程将我的CPU限制在80%#,c#,multithreading,C#,Multithreading,例如,我有下面的代码 static void Main(string[] args) { Process.GetCurrentProcess().PriorityClass = ProcessPriorityClass.High; for (int i = 0; i < 100; i++) { new Task(()=> { DoCalc(); }).Start(

例如,我有下面的代码

 static void Main(string[] args)
        {
            Process.GetCurrentProcess().PriorityClass = ProcessPriorityClass.High;
            for (int i = 0; i < 100; i++)
            {
                new Task(()=> { DoCalc(); }).Start();
            }
            Console.ReadLine();
        }
        private static void DoCalc()
        {
            Console.WriteLine("I'm working");

        }
static void Main(字符串[]args)
{
Process.GetCurrentProcess().PriorityClass=ProcessPriorityClass.High;
对于(int i=0;i<100;i++)
{
新任务(()=>{DoCalc();}).Start();
}
Console.ReadLine();
}
私有静态void DoCalc()
{
Console.WriteLine(“我在工作”);
}
我想把我的cpu使用率限制在80%,我该怎么做呢


非常感谢

那么,您想让代码运行得比实际速度慢吗?奇怪的要求。我可以看到,例如,为进程/线程设置较低的优先级,这样其他进程就不会被淹没,但当可以完成有用的工作时,CPU处于空闲状态……调整一个或多个特定进程并不能保证多少,因为其他进程可以使用CPU将其设置为更大的限制,请查看superuser中的相关问题,我喜欢电源管理CPU限制选项,不需要额外的软件,这可能是他要求的,但不是他的意思。他希望您避免影响他机器上运行的其他程序。您可以通过使用Thread.Priority属性来执行此操作。如果他过于关注数字,而不是它的实际含义,那么您需要创建比Environment.ProcessorCount更少的线程。