PerformanceCounter PhysicalDisk%Disk Time错误值

问题描述 投票:-1回答:1

一个有问题的问题,让我们看看这个人可以得到多少票?

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等值。

这是我唯一可以找到的磁盘使用情况的PerformanceCounter。为什么我得到错误的值?

c# performancecounter
1个回答
0
投票

啊哈,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);

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

© www.soinside.com 2019 - 2024. All rights reserved.