Создание событий для чтения и записи на жесткий диск - PullRequest
5 голосов
/ 02 марта 2011

Я пытаюсь написать что-то, что вызовет событие в любое время, когда жесткий диск считывает данные или записывает данные.Я знаю, что это связано с использованием System.Diagnostics.PerformanceCounter, но я не знаю этого достаточно хорошо, чтобы сделать это самостоятельно.Может ли кто-нибудь указать мне правильное направление?Кроме того, я хотел бы, чтобы событие, которое запускается, возвращало, какой диск читается или записывается.Любая помощь будет оценена.Кстати, это C #.

1 Ответ

8 голосов
/ 20 марта 2012

Следующее не создает события, но вы можете использовать его вместе с таймером для отображения информации в трее (согласно комментариям):

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...