PerformanceCounter PhysicalDisk % Disk Time 错误值

PerformanceCounter PhysicalDisk % Disk Time wrong value

一个幼稚的问题,让我们看看这个能得到多少反对票?

private static PerformanceCounter PC18 = new PerformanceCounter("PhysicalDisk", "% Disk Time", "_Total");

调用计数器使用:

private void Timer_Tick(object sender, EventArgs e)
{
    Console.WriteLine($"PC18.NextValue()");
}

此计时器设置为 1 秒间隔。

我得到的值没有相应的磁盘使用率百分比,正在显示 130.02 等值。

这是我能找到的唯一一个计算磁盘使用情况的性能计数器。为什么我得到错误的值?

啊哈,instanceName,'_total'不是磁盘上的数字,是所有磁盘。

所以,答案 here 解决了我的问题:

PC18 = new PerformanceCounter("PhysicalDisk", "% Disk Time", "0 C:");

其中:'0 C:' 是我的物理磁盘 C:

的实例名称

感谢'Henk Holterman',虽然答案不是很清楚,但也足以得出最终答案。谢谢!

PerformanceCounterCategory Category = new System.Diagnostics.PerformanceCounterCategory("PhysicalDisk");
string[] InstanceNames = Category.GetInstanceNames();

foreach (string Name in InstanceNames)
    richTextBox1.AppendText(Name + Environment.NewLine);

这将为您提供所需的实例名称。