2012-02-11 3 views
1

Я хочу, чтобы элемент управления, который очень похож на тот, используемый в Windows Task Manager, чтобы показать что-то производительность процессора, как в изменении вертикального GuageКак сделать контроль использования CPU в WPF

+2

Итак, что вы пробовали и как далеко вы добрались? Вы столкнулись с какими-то конкретными проблемами, которые бы сделали правильный вопрос? –

ответ

3

Вы можете получить процессор значения использования через 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(); 
+1

WMI будет немного тяжелее, если вы хотите (полу) обновления в реальном времени. –

+1

Это справедливая точка .. угадайте, он может использовать PerformanceCounter вместо этого. Я изменю свой ответ –

1

Получил его ... использовал индикатор выполнения, чтобы показать значения и использовать PerformanceCounter, чтобы получить значения использования процессора.

спасибо

+2

Отличный, рад, что он работал помощником. Общая практика заключается в том, что вы добавили бы такие комментарии к своему собственному вопросу или ответ, ответивший на ваш вопрос. Убедитесь, что вы отметили правильный ответ, так как в противном случае люди будут думать, что он не отвечает. –