Вот мой код.
PerformanceCounter cpuCounter = new PerformanceCounter();
cpuCounter.CategoryName = "Processor";
cpuCounter.CounterName = "% Processor Time";
cpuCounter.InstanceName = "_Total";
// will always start at 0
dynamic firstValue = cpuCounter.NextValue();
System.Threading.Thread.Sleep(1000);
dynamic secondValue = cpuCounter.NextValue();
return secondValue;
Здесь много людей, которые сталкиваются с проблемой, что это возвращает ноль, но я все равно получаю 100, и я точно знаю, что мое программное обеспечение не занимает столько мощного процессора. Любые идеи относительно того, что я могу сделать, чтобы сделать эту работу правильно. Чтобы быть ясным, я пытаюсь извлечь использование процессора из приложения, использующего этот код, а не отдельный. Также я работаю на виртуальной машине, но это, похоже, не имеет значения. Любые идеи?