Я смог получить общую загруженность процессора через Open Hardware Monitor Lib вот так:
public static short GetCPUUsage()
{
Computer myComputer = new Computer();
myComputer.CPUEnabled = true;
myComputer.Open();
foreach (var hardwareItem in myComputer.Hardware)
{
if (hardwareItem.HardwareType == HardwareType.CPU)
{
foreach (var sensor in hardwareItem.Sensors)
{
if (sensor.SensorType == SensorType.Load)
{
hardwareItem.Update();
return Convert.ToInt16(sensor.Value);
}
}
}
}
return -1;
}
Но как мне получить загруженность каждого ядра?
Судя по всему так:
hardwareItem.Sensors[0].Value // Core #1
hardwareItem.Sensors[1].Value // Core #2
hardwareItem.Sensors[2].Value // Core #3
hardwareItem.Sensors[3].Value // Core #4
Имена можно получить так:
hardwareItem.Sensors[0].Name // Core #1
hardwareItem.Sensors[1].Name // Core #2
hardwareItem.Sensors[2].Name // Core #3
hardwareItem.Sensors[3].Name // Core #4
Чем вас ваш код кстати не устраивает, вы же вроде тоже самое и получаете?
Сборка персонального компьютера от Artline: умный выбор для современных пользователей