我已经使用C#编写了一个小型WPF小部件,它将当前CPU活动,使用的RAM和磁盘活动显示为三个小百分比类型条。我已经使用了以下PerformanceCounters此:(diskCounter的PerformanceCounter以每秒字节返回当前总的磁盘活动)以编程方式确定计算机的最大硬盘驱动器数据传输速率使用C#
private void InitialisePerformanceCounters()
{
cpuCounter = new PerformanceCounter("Processor", "% Processor Time", "_Total", true);
totalRam = (int)(new Microsoft.VisualBasic.Devices.ComputerInfo().TotalPhysicalMemory/1024/1024);
ramCounter = new PerformanceCounter("Memory", "Available MBytes");
diskCounter = new PerformanceCounter("PhysicalDisk", "Disk Bytes/sec", "_Total", true);
}
的问题是,虽然我已经发现如何得到总的可用内存来计算从使用比例,我无法找到如何读取磁盘的'理论'最大数据传输率。我需要这个来计算使用的磁盘传输速率的百分比。 任何帮助将不胜感激。
你会如何找到最大可能的速度? AFAIK这取决于HD的当前位置,所以这或多或少会给你一个错误的结果,或者不是? – InsertNickHere 2010-06-30 16:04:36
@InsertNickHere:测量最大可能速率的唯一方法是写入整个磁盘并间隔测量。你是正确的,这取决于许多因素,但这应该至少提供一个可用的近似值。 – 2010-06-30 16:06:55
感谢Adam,但我不需要任何如此准确的东西...... Jonathan建议的理论最大比率很好。 – Sheridan 2010-06-30 16:25:33