如何在c#中将性能计数器的输出转换为int型

本文关键字:转换 输出 int 性能计数器 | 更新日期: 2023-09-27 17:52:41

当我尝试使用进度条显示当前CPU和内存使用情况时,我有一个错误。代码似乎是正确的,因为它与标签一起工作,但我得到一个错误"不能转换为整型",所以我怎么能把性能计数器的数据转换成整型,这样它就可以在进度条中显示?我试过使用System.Convert.ToInt32(cpuCounter);,但它不适合我。下面是我的代码:

PerformanceCounter ramCounter;
        ramCounter = new PerformanceCounter("Memory", "Available MBytes");
        ramCounter.NextValue();
        progressBar1.Value = ramCounter;
        PerformanceCounter cpuCounter;
        cpuCounter = new PerformanceCounter();
        cpuCounter.CategoryName = "Processor";
        cpuCounter.CounterName = "% Processor Time";
        cpuCounter.InstanceName = "_Total";
        cpuCounter.NextValue();
        progressBar2.Value = cpuCounter;

谢谢!

如何在c#中将性能计数器的输出转换为int型

您需要PerformanceCounter.NextValue()结果 -您目前正在忽略它:

float value = cpuCounter.NextValue();
progressBar2.Value = (int) value;

你当然要检查期望值的范围——你很可能想要缩放它。

另一个选择是使用RawValue属性,这是一个long

您不应该将性能计数器实例分配给进度条,而是分配给它的值。值本身是Int64。

progressbar1.Value = (Int32) ramCounter.RawValue;

你的,阿洛伊斯•克劳斯