Wichtige C#-Klassen: PerformanceCounter
Der PerformanceCounter ist eine Klasse, mit welcher Informationen über die aktuelle Auslastung oder Nutzung des Computers (Leistungsindikator) abgerufen werden können und sich im Namensraum System.Diagnostics befindet. Dem Konstruktor kann dabei der Kategorie-Name (CategoryName) und der Zähler-Name (CounterName) sowie den optionalen Instanz-Namen (InstanceName) übergeben werden. Die InstanceName-Eigenschaft wird nicht immer benötigt und wird daher oft weggelassen. Über die Funktion NextValue() können wir den aktuellen Wert abrufen.
Im Beispiel geben wir die aktuelle Auslastung des Prozessors und die Nutzung des Arbeitsspeichers und der Page-File (Auslagerungsdatei von Windows) aus. Mit der statischen Funktion Sleep() der Thread-Klasse (Namensraum System.Threading) können wir den aktuellen Thread für x Millisekunden blockieren. Dies ist notwendig, um eine übersichtliche Ausgabe zu erhalten. Weitere Funktionen und das Thema Multitasking werden wir später ausführlich behandeln.
Program.cs
// Übersicht über Konstruktor-Parameter CategoryName CounterName InstanceName (nicht immer benötigt) PerformanceCounter oPerformanceCpu = new PerformanceCounter("Processor", "% Processor Time", "_Total"); PerformanceCounter oPerformanceRam = new PerformanceCounter("Memory", "% Committed Bytes In Use"); PerformanceCounter oPerformancePf = new PerformanceCounter( "Paging File", "% Usage", "_Total"); while (!Console.KeyAvailable) // warten bis Taste gedrückt wird { Console.WriteLine("CPU: {0:F2} %", oPerformanceCpu.NextValue()); Console.WriteLine("RAM: {0:F2} %", oPerformanceRam.NextValue()); Console.WriteLine("Page-File: {0:F2} %", oPerformancePf.NextValue()); Console.WriteLine(); Thread.Sleep(500); // aktuellen Thread (dazu später mehr) 500 ms pausieren }