一个有问题的问题,让我们看看这个人可以得到多少票?
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。为什么我得到错误的值?
啊哈,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);
这将为您提供所需的实例名称。