Tôi muốn để có được sử dụng CPU cho một quá trình cụ thể ..Bắt sử dụng CPU của một quá trình trong C#
Mã này
total_cpu = new PerformanceCounter("Processor", "% Processor Time", "_Total");
hoạt động tuyệt vời. Số này tương ứng với số "Sử dụng CPU" trong Windows 'Task Manager.
Nhưng sau mang lại cho tôi số lạ ...
process_cpu = new PerformanceCounter("Process", "% Processor Time", "gta_sa");
var process_cpu_usage = (total_cpu_usage.NextValue()/100) * process_cpu.NextValue();
Như bạn có thể nhìn thấy trên ảnh chụp màn hình (thay vì "7", tôi nhận được "2,9 ..").
Bạn đã cố gắng để đưa giấc ngủ trong vòng 1 giây giữa mỗi NetValue() gọi. Cuộc gọi đầu tiên tới NextValue() bắt đầu cuộc gọi đo và cuộc gọi tiếp theo sẽ đưa ra một số kết quả. Vì vậy, mẹo là tạo tất cả các đối tượng PerformanceCounter của bạn và ngay lập tức gọi NextValue() cho chúng. Sau đó, ngủ một giây, và gọi NextValue() cho tất cả chúng một lần nữa – Mohit
thx, vâng, tôi gọi NetValue() mỗi giây .. –