Maison >développement back-end >C++ >Comment calculer l'utilisation du processeur en C #?

Comment calculer l'utilisation du processeur en C #?

Susan Sarandon
Susan Sarandonoriginal
2025-01-27 07:51:10677parcourir

How Do I Calculate CPU Usage in C#?

Surveillance de l'utilisation du processeur dans les applications C #

Ce guide montre comment obtenir des données d'utilisation du processeur à l'échelle du système dans une application C # à l'aide de la classe PerformanceCounter.

Configuration du compteur:

Commencez par instancier un objet PerformanceCounter pour suivre l'utilisation du CPU. Cela se fait en spécifiant la catégorie ("processeur"), le nom de contre-nom ("% de processeur") et le nom d'instance ("_total" pour l'utilisation globale du système):

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

Récupération de l'utilisation du processeur:

Le pourcentage d'utilisation actuel du processeur est obtenu en utilisant la méthode NextValue(). Notez que le premier appel à NextValue() reviendra toujours à 0%. Un deuxième appel, après un court délai, est nécessaire pour obtenir un résultat significatif.

<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>

Remarques importantes:

  • L'appel initial NextValue() est crucial pour éliminer la valeur par défaut de 0%.
  • La méthode System.Threading.Thread.Sleep() introduit un retard de mesure précise. Ajustez le retard au besoin.
  • Ce compteur reflète l'utilisation agrégée du processeur sur tous les noyaux de processeur.
  • Pour surveiller d'autres ressources système, telles que la RAM disponible, vous pouvez utiliser des objets PerformanceCounter similaires. Par exemple:
<code class="language-csharp">PerformanceCounter ramCounter = new PerformanceCounter("Memory", "Available MBytes");

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

La classe PerformanceCounter fournit un moyen robuste et efficace d'intégrer la surveillance des performances du système dans vos applications C #. N'oubliez pas de gérer les exceptions potentielles (par exemple, PerformanceCounterException) pendant l'utilisation.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn