我使用在线示例开发了以下代码示例。但它没有给出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。但我的问题是为什么它在第一个算法中没有给我任何价值。
答案 0 :(得分:2)
答案在MSDN中:
如果计数器的计算值取决于两个计数器读数,则 第一次读取操作返回0.0。重置性能计数器 指定不同计数器的属性相当于创建一个 新的性能计数器,以及使用新的第一个读取操作 属性返回0.0。呼叫之间建议的延迟时间 NextValue方法是一秒钟,以允许计数器执行 下一次增量阅读。