如何在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;
谢谢!
您需要PerformanceCounter.NextValue()
的结果 -您目前正在忽略它:
float value = cpuCounter.NextValue();
progressBar2.Value = (int) value;
你当然要检查期望值的范围——你很可能想要缩放它。
另一个选择是使用RawValue
属性,这是一个long
。
您不应该将性能计数器实例分配给进度条,而是分配给它的值。值本身是Int64。
progressbar1.Value = (Int32) ramCounter.RawValue;
你的,阿洛伊斯•克劳斯