Я пишу программу, которая использует счетчик производительности .NET, чтобы получить процессор, память и использование сети для определенного процесса.Мониторинг производительности сети для определенного процесса
Например, для получения данных процессора и памяти для Explorer
, я создаю счетчики производительности, как это:
PerformanceCounter PC = new PerformanceCounter();
PC.CategoryName = "Process";
PC.CounterName = "% Processor Time";
PC.InstanceName = "Explorer";
PerformanceCounter PC = new PerformanceCounter();
PC.CategoryName = "Process";
PC.CounterName = "Working Set - Private";
PC.InstanceName = "Explorer";
К сожалению, нет недвижимости для процесса categoryName
, что позволяет мне получить использование сети для этого обработать. Я могу использовать Сетевой интерфейс categoryName
, чтобы получить общее использование сети на любом конкретном сетевом адаптере, но не может изолировать его от любого данного Процесса.
похоже, что что-то подобное было задано раньше: http: //stackoverflow.com/questions/438240/monitor-a-processs-network-usage – Dilshod
Это архитектурное ограничение. Эти счетчики реализуются стеком сетевых драйверов. Что работает в режиме ядра, у него нет информации об использовании процесса usermode. Тот же тип причины, почему FileSystemWatcher не может сказать вам, какой процесс изменил файл. –