-2

所以我正在做一些检查CPU使用率低于一定百分比的东西,这样它就不会让系统陷入困境。我有这个代码:

 static PerformanceCounter cpuUsage;

    public static void Main(string[] args)


    {
        cpuUsage = new PerformanceCounter("Processor", "% Processor Time", "_Total");


        do
        {

            Console.WriteLine(cpuUsage.NextValue() + " %");
            Thread.Sleep(1000);

            Console.WriteLine(cpuUsage.NextValue() + " %");
        }

        while (cpuUsage.NextValue() < 50.00);

    }

我最初的想法是使用这个 do while 循环来不断检查 CPU 使用率,直到它超过 50% 然后停止循环。但由于某种原因,即使 cpuUsage.NextValue 超过 50,它仍然不会退出循环。我猜这个值有问题。有什么建议么?

4

1 回答 1

1

我认为线索在 0% 输出中 -文档建议您仅每秒调用 NextValue 以便它有时间获取数据,但实际上您每秒调用 3 次。尝试:

float usage;
do {
     Thread.Sleep(TimeSpan.FromSeconds(1));
     usage = cpuUsage.NextValue();
     Console.WriteLine(usage + " %");
} while (usage < 50.00);
于 2013-08-02T15:26:25.870 回答