Я знаю по вопросу о том, как получить нагрузку на процессор (на ядро и всего), существуют десятки учебных пособий или фрагментов кода.
Но что вызывает у меня подозрения:
- Общее использование ЦП не соответствует значению в диспетчере задач (кроме того, в большинстве случаев это 0, где диспетчер задач отображает значения от 10 до 20%)
- Как уже упоминалось, общее использование ЦПв основном 0%, тогда как значение 1-го ядра показывает, например, 19%.
На рисунке вы видите мой вывод с левой стороны и диспетчер задач с правой стороны.Поэтому я ожидаю значение 13% для _Total (согласно диспетчеру задач), а не 1%.И почему отображается 1%, хотя одно ядро имеет 6%, а остальные 12% мне не совсем понятно.
Вот мой код:
public SystemStatsViewModel() {
TimerThread = new Thread(new ThreadStart(TimerThreadMethod))
{
Name = "TimerThread",
IsBackground = true
};
TimerThread.Start();
}
private void TimerThreadMethod()
{
var cpuSearcher = new ManagementObjectSearcher("SELECT * FROM Win32_PerfFormattedData_Counters_ProcessorInformation WHERE Name LIKE '0%'");
string cpuString;
while (true)
{
cpuString = "";
foreach (var obj in cpuSearcher.Get())
{
cpuString += $"{obj["Name"]}: {obj["PercentProcessorTime"]}{Environment.NewLine}";
}
}
}
ОБНОВЛЕНИЕ
С счетчиками производительности, которые я уже пробовал, таким образом, счетчики WMI и производительности (различные счетчики) не дали желаемого значения.Но под самой Windows есть монитор производительности (Win + R, perfmon, Enter).Здесь вы можете найти индикатор «загрузка процессора» в разделе «информация о процессоре».И я НЕ имею в виду «время процессора (%)».Значение, по крайней мере, ближе всего к значению, отображаемому диспетчером задач.Но я пока не мог понять, как его найти.(Я использую немецкую Windows, уже пытался установить ее на английский, но счетчики остаются с немецкими именами, иначе я бы видел, как счетчик называется на английском (по крайней мере, в Windows)).
Но с «загрузкой процессора» или «использованием процессора» ничего не найдено.А также отображение счетчиков информации о категории процессора не показывает этот конкретный счетчик.Так что это должно быть что-то, что вычисляется из нескольких счетчиков.