性能计数器将cpuUsage保持在一定百分比C#以下

本文关键字:百分比 以下 cpuUsage 性能计数器 | 更新日期: 2023-09-27 18:26:24

所以我正在研究一种检查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,它仍然不会退出循环。我猜这个值有问题。有什么建议吗?

性能计数器将cpuUsage保持在一定百分比C#以下

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

float usage;
do {
     Thread.Sleep(TimeSpan.FromSeconds(1));
     usage = cpuUsage.NextValue();
     Console.WriteLine(usage + " %");
} while (usage < 50.00);