Ice*_*ind 5 .net c# performancecounter
我正在尝试编写一些可以在硬盘读取数据或写入数据时触发事件的内容.我知道这涉及到使用System.Diagnostics.PerformanceCounter,但我不太了解这个能够自己做到这一点.有人能指出我正确的方向吗?此外,我希望触发的事件返回正在读取或写入的驱动器.任何帮助,将不胜感激.顺便说一句,这是C#.
以下内容不会创建事件,但您可以将它与计时器一起使用以在托盘中显示信息(根据注释):
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";
Run Code Online (Sandbox Code Playgroud)
_Total 适用于所有磁盘...以获取可用磁盘的特定实例名:
var cat = new System.Diagnostics.PerformanceCounterCategory("PhysicalDisk");
var instNames = cat.GetInstanceNames();
Run Code Online (Sandbox Code Playgroud)
然后,您可以为您感兴趣的每个实例创建一对diskRead/ diskWrite...有关如何结合计时器使用此示例的示例请参阅此.