Heim >Backend-Entwicklung >C++ >Wie berechne ich die CPU-Auslastung in C#?

Wie berechne ich die CPU-Auslastung in C#?

Susan Sarandon
Susan SarandonOriginal
2025-01-27 07:51:10678Durchsuche

How Do I Calculate CPU Usage in C#?

Überwachung der CPU -Verwendung in C# -Anwendungen

Diese Anleitung zeigt, wie systemweite CPU-Nutzungsdaten in einer C# -Anwendung mithilfe der PerformanceCounter -Kläufe erhalten werden.

Einrichten des Zählers:

Beginnen Sie mit dem Instanziieren eines PerformanceCounter -Objekts, um die CPU -Verwendung zu verfolgen. Dies erfolgt durch Angabe der Kategorie ("Prozessor"), des Zählernamens ("% Prozessorzeit") und des Instanznamens ("_total" für die Gesamtsystemnutzung):

<code class="language-csharp">PerformanceCounter cpuCounter = new PerformanceCounter("Processor", "% Processor Time", "_Total");</code>

Ring CPU -Verwendung:

Der aktuelle Prozentsatz der CPU -Verwendung wird unter Verwendung der NextValue() -Methode erhalten. Beachten Sie, dass der erste Anruf bei NextValue() immer 0%zurückgibt. Ein zweiter Anruf ist nach einer kurzen Verzögerung erforderlich, um ein aussagekräftiges Ergebnis zu erzielen.

<code class="language-csharp">public string GetCpuUsage()
{
    // First call to NextValue() is always 0, so we discard it.
    cpuCounter.NextValue();
    System.Threading.Thread.Sleep(1000); // Wait 1 second for a more accurate reading.
    return cpuCounter.NextValue() + "%";
}</code>

Wichtige Hinweise:

  • Der anfängliche NextValue() -Auf ist entscheidend, um den Standardwert von 0% zu verwerfen.
  • Die System.Threading.Thread.Sleep() -Methode führt eine Verzögerung für eine genaue Messung ein. Passen Sie die Verzögerung nach Bedarf an.
  • Dieser Zähler spiegelt die aggregierte CPU -Verwendung über alle Prozessorkernen hinweg wider.
  • Für die Überwachung anderer Systemressourcen, wie zum Beispiel verfügbaren RAM, können Sie ähnliche PerformanceCounter Objekte verwenden. Zum Beispiel:
<code class="language-csharp">PerformanceCounter ramCounter = new PerformanceCounter("Memory", "Available MBytes");

public string GetAvailableRAM()
{
    return ramCounter.NextValue() + " MB";
}</code>

Die PerformanceCounter -Klasse bietet eine robuste und effiziente Möglichkeit, die Überwachung der Systemleistung in Ihre C# -Anwendungen zu integrieren. Denken Sie daran, potenzielle Ausnahmen (z. B. PerformanceCounterException) während der Verwendung zu bewältigen.

Das obige ist der detaillierte Inhalt vonWie berechne ich die CPU-Auslastung in C#?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn