我正在尝试写一些东西,它会在硬盘读取数据或写入数据的任何时候触发事件。我知道这涉及到使用System.Diagnostics.PerformanceCounter,但我对此还不够了解,不能独自完成这项工作。谁能给我指个方向?此外,我希望触发的事件能够返回正在读取或写入的驱动器。任何帮助都将不胜感激。顺便说一下,这是C#。
发布于 2012-03-20 06:13:17
以下代码不会创建事件,但您可以将其与计时器一起使用,以在任务栏中显示信息(根据注释):
using System.Diagnostics;
private PerformanceCounter diskRead = new PerformanceCounter();
private PerformanceCounter diskWrite = new PerformanceCounter();
diskRead.CategoryName = "PhysicalDisk";
diskRead.CounterName = "Disk Reads/sec";
diskRead.InstanceName = "_Total";
diskWrite.CategoryName = "PhysicalDisk";
diskWrite.CounterName = "Disk Writes/sec";
diskWrite.InstanceName = "_Total";_Total适用于所有磁盘...要获取可用磁盘的特定实例名称,请使用:
var cat = new System.Diagnostics.PerformanceCounterCategory("PhysicalDisk");
var instNames = cat.GetInstanceNames();然后,您可以为您感兴趣的每个实例创建一对diskRead/diskWrite ...有关如何将其与计时器结合使用的示例,请参阅this。
https://stackoverflow.com/questions/5161803
复制相似问题