Вы можете получить значения использования ЦП через ManagementObjectSearcher
, используя WMI
. Чтобы получить значение, вы делаете что-то вроде этого
var info = ManagementObjectSearcher(@"\\localhost\root\CIMV2","SELECT * FROM Win32_PerfFormattedData_PerfOS_Processor WHERE Name=\"_Total\"");
ManagementObject queryObj = info.Get().Cast<ManagementObject>().First();
var cpuUsage = Convert.ToInt32(queryObj["PercentIdleTime"]);
В качестве альтернативы вы можете использовать System.Diagnostics PerformanceCounterвместо
PerformanceCounter cpu = new PerformanceCounter(){
CategoryName = "Processor",
CounterName = "% Processor Time",
InstanceName = "_Total"
};
var yourCpuUsageValue = cpu.NextValue();