【问题标题】:How to Get CPU Usage as taskmgr? C#如何获取 CPU 使用率作为 taskmgr? C#
【发布时间】:2016-05-03 19:09:36
【问题描述】:

使用这样的代码

PerformanceCounter cpu_utilized = new PerformanceCounter("Processor", @"% Processor Time", @"_Total");
CounterSample a1 = cpu_utilized.NextSample();
Thread.Sleep(500); //tried other values, same result
float a = CounterSample.Calculate(a1, cpu_utilized.NextSample());
string str = "CPU USAGE %: " + a;
System.Console.Out.WriteLine(str);

结果与 perfmon.exe 计数器相同,但与 taskmgr 值不同

我想得到 taskmgr 显示的总系统 cpu 使用情况,已经尝试使用 NextValue(),但结果是一样的...

有什么建议吗?我应该找一些其他的计数器并添加到它或其他东西吗?

更多信息: 我正在使用具有 4 个物理内核和 8 个逻辑内核的 CPU 视窗 10 Perfmon 显示约 36% Taskmgr 显示大约 48%

【问题讨论】:

    标签: c# performancecounter


    【解决方案1】:

    Paulo,试试看process hacker。 获取 CPU 使用率将是问题之一,处理工作集、物理内存、分页、tlb 等的问题要复杂数十倍。

    源代码是用 C 而不是 C# 编写的。但是,您可以轻松使用它。 我不是 C# 专家,但如果该语言有这样的 api,我很确定它在幕后使用了 C API。

    【讨论】:

      猜你喜欢
      • 2010-09-21
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-03-02
      • 2011-10-18
      • 2011-05-05
      相关资源
      最近更新 更多