如何获得总 CPU 使用量(所有进程)? (C#)
How to get total CPU usage (all processes)? (C#)
在 windows 应用程序中,我如何获得 所有进程 (不只是一个进程或应用程序)的 CPU 总使用量C# 中的核心? (如果可能,不使用任何第三方库)
我只能找到有关 CPU 单个进程用法的问题和答案。例如 this one 似乎只询问 运行 程序的 CPU 用法,并且答案不清楚他们的代码收集了哪些信息,因此在这种情况下它不是很有帮助。
不过,如果这个问题在其他地方得到回答,我会很乐意接受 link。
谢谢!
当您使用 PerformanceCounter
class 时, NextValue()
方法的第一次调用很可能会 return 0。因此,您应该在之后调用它几次一些延迟以获得适当的措施。
您将需要:
using System.Diagnostics;
using System.Threading;
那么可以通过以下方式获取:
static void Main(string[] args)
{
var cpuUsage = new PerformanceCounter("Processor", "% Processor Time", "_Total");
Thread.Sleep(1000);
var firstCall = cpuUsage.NextValue();
for (int i = 0; i < 5; i++)
{
Thread.Sleep(1000);
Console.WriteLine(cpuUsage.NextValue() + "%");
}
Console.Read();
}
using (PerformanceCounter system_cpu_usage = new PerformanceCounter("Processor", "% Processor Time", "_Total"))
{
var first = system_cpu_usage.NextValue();
Thread.Sleep(2500);
// Do something
}
您必须先包含一个 var = system_cpu_usage.NextValue(); 才能继续显示实际值。
在 windows 应用程序中,我如何获得 所有进程 (不只是一个进程或应用程序)的 CPU 总使用量C# 中的核心? (如果可能,不使用任何第三方库)
我只能找到有关 CPU 单个进程用法的问题和答案。例如 this one 似乎只询问 运行 程序的 CPU 用法,并且答案不清楚他们的代码收集了哪些信息,因此在这种情况下它不是很有帮助。
不过,如果这个问题在其他地方得到回答,我会很乐意接受 link。
谢谢!
当您使用 PerformanceCounter
class 时, NextValue()
方法的第一次调用很可能会 return 0。因此,您应该在之后调用它几次一些延迟以获得适当的措施。
您将需要:
using System.Diagnostics;
using System.Threading;
那么可以通过以下方式获取:
static void Main(string[] args)
{
var cpuUsage = new PerformanceCounter("Processor", "% Processor Time", "_Total");
Thread.Sleep(1000);
var firstCall = cpuUsage.NextValue();
for (int i = 0; i < 5; i++)
{
Thread.Sleep(1000);
Console.WriteLine(cpuUsage.NextValue() + "%");
}
Console.Read();
}
using (PerformanceCounter system_cpu_usage = new PerformanceCounter("Processor", "% Processor Time", "_Total"))
{
var first = system_cpu_usage.NextValue();
Thread.Sleep(2500);
// Do something
}
您必须先包含一个 var = system_cpu_usage.NextValue(); 才能继续显示实际值。