Exception: Instance 'Name of instance' does not exist in the specified Category

后端 未结 5 1031
长情又很酷
长情又很酷 2021-01-11 16:40

When I create and use performance counters like this:

private readonly PerformanceCounter _cpuPerformanceCounter;
public ProcessViewModel(Process process)
           


        
5条回答
  •  感情败类
    2021-01-11 17:08

    Here is my solution for all processes and multiple process instances:

    var processes = Process.GetProcesses().GroupBy(g => g.ProcessName);
            List> pcList = new List>();
            foreach (var pg in processes)
            {
                if (pg.First().ProcessName == "Idle")
                    continue;
    
                if (pg.Count() == 1)
                {
                    var process_cpu = new PerformanceCounter(
                               "Process",
                               "% Processor Time",
                               pg.First().ProcessName
                                    );
                    process_cpu.NextValue();
                    pcList.Add(new Tuple(pg.First().ProcessName, process_cpu));
                }
                else
                {
                    int id = 1;
                    foreach(var p in pg)
                    {
                        var process_cpu = new PerformanceCounter(
                               "Process",
                               "% Processor Time",
                               p.ProcessName + "#" + id
                                    );
                        process_cpu.NextValue();
                        pcList.Add(new Tuple(p.ProcessName + "#" + id, process_cpu));
                        id++;
                    }
                }
            }
    

提交回复
热议问题