在C#时刻查找CPU使用情况

时间:2015-04-29 12:03:40

标签: c# winforms

我使用在线示例开发了以下代码示例。但它没有给出CPU使用率的百分比。

    PerformanceCounter RcpuCounter;
    PerformanceCounter RramCounter;

    public void ResourcesCPU()
    {
        RcpuCounter = new PerformanceCounter();

        RcpuCounter.CategoryName = "Processor";
        RcpuCounter.CounterName = "% Processor Time";
        RcpuCounter.InstanceName = "_Total";

        string cpu = getCurrentCpuUsage();
    }

    public string getCurrentCpuUsage()
    {
        string Value1 = RcpuCounter.NextValue() + "%";

        return Value1;
    }

然后,我更改了getCurrentCpuUsage()方法,如下所示。它给了我一个值作为CPU使用率。

public string getCurrentCpuUsage()
    {
        string Value1 = RcpuCounter.NextValue() + "%";
        Thread.Sleep(500);
        string Value2 = RcpuCounter.NextValue() + "%";

        return Value2;
    }

我知道可以在不同的时间内使用不同的cpu。但我的问题是为什么它在第一个算法中没有给我任何价值。

1 个答案:

答案 0 :(得分:2)

答案在MSDN中:

https://msdn.microsoft.com/en-us/library/system.diagnostics.performancecounter.nextvalue(v=vs.110).aspx

  

如果计数器的计算值取决于两个计数器读数,则   第一次读取操作返回0.0。重置性能计数器   指定不同计数器的属性相当于创建一个   新的性能计数器,以及使用新的第一个读取操作   属性返回0.0。呼叫之间建议的延迟时间   NextValue方法是一秒钟,以允许计数器执行   下一次增量阅读。