Следующее не создает события, но вы можете использовать его вместе с таймером для отображения информации в трее (согласно комментариям):
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
для каждого интересующего вас экземпляра ... для примера того, как использовать это вкомбинацию с таймером см. это .