我想获得C#中应用程序的总CPU使用率.我已经找到了许多方法来深入研究进程的属性,但我只想要进程的CPU使用率,以及你在TaskManager中获得的总CPU.
我怎么做?
我有一些托管在Windows服务中的WCF服务.昨天我查看了任务管理器,发现我的Windows服务进程的CPU时间超过5小时,而其他大多数进程都是0.
那是什么意思?
我应该担心CPU时间是5个多小时吗?
这是我的代码.
PerformanceCounter cpuCounter = new PerformanceCounter();
cpuCounter.CategoryName = "Processor";
cpuCounter.CounterName = "% Processor Time";
cpuCounter.InstanceName = "_Total";
// will always start at 0
dynamic firstValue = cpuCounter.NextValue();
System.Threading.Thread.Sleep(1000);
dynamic secondValue = cpuCounter.NextValue();
return secondValue;
Run Code Online (Sandbox Code Playgroud)
这里有很多人正在解决这个问题,即返回零,但我总是得到100,而且我确信我的软件不会占用那么多的CPU粉末.关于我能做些什么来使这项工作正确的任何想法.为了清楚起见,我试图从运行此代码的应用程序中检索处理器使用情况,而不是单独的代码.我也在VM上运行,但这似乎并不重要.有任何想法吗?