我一直在尝试放弃使用PerformanceCounter类来监视进程的 CPU 使用率,因为当进程计数变得相当高时(当监视大量进程时),它似乎需要相当多的 CPU。
我的第一种方法是使用Win32_PerfFormattedData_PerfOS_Processor类和 PercentProcessorTime 属性采用 WMI 路由,但是在尝试计算多个内核的 CPU 使用率时似乎存在问题(它返回的最大值是 100%,因此无法根据它进行划分CPU 核心数,导致结果不准确)。
所以最后我决定使用 Process 的类TotalProcessorTime属性。可悲的是,我不确定如何根据该值计算进程使用的总 CPU 使用率的百分比。我知道我应该从以前的 PercentProcessorTime 值中减去当前的 PercentProcessorTime 值,以获得处理器在特定时间限制内花费在进程上的时间,但我不确定如何从那里继续。
提前致谢。