2017-08-28 4 views
1

ich diesen einfachen Code immer (von #278071) CPU-Auslastung zu erhalten:Kann die CPU-Auslastung in C# erhält Performance mit - System.FormatException

var cpuCounter = new PerformanceCounter("Processor", "% Processor Time", "_Total"); 

public string getCurrentCpuUsage() { 
     return cpuCounter.NextValue()+"%"; 
} 

Es funktioniert perfekt seit Jahren. Aber es funktioniert nicht nach dem Upgrade. Ich verwende Windows 10 jetzt und cpuCounter.NextValue wirft System.FormatException: Eingabezeichenfolge war nicht in einem korrekten Format.

Was ist los? Liegt es an Windows 10? Oder ist es wegen meiner neuen CPU - Xeon E5-2683? Wie kann ich die CPU-Auslastung erhalten?

upd: System.FormatException wird ausgelöst, wenn ich .NET Framework 3.5 verwende. Ich wechselte zu .NET Framework 4.5 und jetzt wirft es InvalidOperationException: Counter Name Daten können nicht geladen werden, weil ein ungültiger Index '' aus der Registrierung gelesen wurde.

+0

Ist es 'cpuCounter.NextValue()', das den Fehler oder 'cpuCounter.NextValue() +"% "'? – crashmstr

+0

cpuCounter.NextValue(); cpuCounter.NextSample() löst auch eine Exception aus. – Cluster

+0

Funktioniert auf meiner Win10-Maschine, so ist es wahrscheinlich nicht. Der Code scheint in Ordnung zu sein. –

Antwort

Verwandte Themen