Tôi đang viết chương trình sử dụng bộ đếm hiệu suất .NET để sử dụng CPU, Bộ nhớ và Mạng cho một quy trình cụ thể.Giám sát hiệu suất mạng cho một quy trình cụ thể
Ví dụ, để có được những CPU và bộ nhớ dữ liệu cho Explorer
, tôi có thể tạo bộ đếm hiệu suất như thế này:
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";
Thật không may, không có tài sản để quá trình categoryName
cho phép tôi để có được sử dụng mạng cho rằng quá trình. Tôi có thể sử dụng Giao diện mạng categoryName
để sử dụng mạng tổng thể trên bất kỳ NIC cụ thể nào, nhưng không thể tách biệt nó với bất kỳ Quy trình cụ thể nào.
có vẻ như có điều gì đó tương tự được hỏi trước đây: http: //stackoverflow.com/questions/438240/monitor-a-processs-network-usage – Dilshod
Đây là một hạn chế về kiến trúc. Các bộ đếm này được thực hiện bởi ngăn xếp trình điều khiển mạng. Mà chạy trong chế độ hạt nhân, nó không có nhận thức quá trình usermode. Cùng một loại lý do tại sao FileSystemWatcher không thể cho bạn biết quy trình nào đã sửa đổi một tệp. –