Получить загрузку процессора для каждого процесса, как в диспетчере задач

Ниже приведен код для получения загрузки ЦП каждого процесса, но, похоже, он дает 0 для всех процессов и не соответствует данным столбца ЦП диспетчера задач.

 Process[] myProcesses = Process.GetProcesses();
for (int i = 0; i < myProcesses.Length; i++)
    {
        //Get process name by processId
        appName = GetProcessInstanceName(myProcesses[i].Id);

        //CPU Column value             
        PerformanceCounter process_cpu = new PerformanceCounter("Process", "% Processor Time", appName,true);                
        Int32 process_pct = Convert.ToInt32(process_cpu.NextValue());                
        System.Threading.Thread.Sleep(1000);

        Int32 process_pct_Second = Convert.ToInt32(process_cpu.NextValue());
        process_pct_Second = process_pct_Second / Environment.ProcessorCount;   
    } 

Пожалуйста, поправьте меня, если я что-то упустил здесь..

0 ответов

Другие вопросы по тегам