Maison >développement back-end >C++ >Comment puis-je déterminer le nombre de processeurs physiques, principaux et logiques dans .NET/C# ?

Comment puis-je déterminer le nombre de processeurs physiques, principaux et logiques dans .NET/C# ?

Mary-Kate Olsen
Mary-Kate Olsenoriginal
2025-01-18 20:01:12468parcourir

How Can I Determine the Number of Physical, Core, and Logical Processors in .NET/C#?

Déterminer le nombre de cœurs de processeur dans .NET/C#

Introduction :

La détermination du nombre de cœurs de processeur est essentielle pour optimiser les performances du code et exploiter les capacités matérielles. .NET et C# proposent plusieurs techniques pour obtenir ces informations.

Processeur et cœurs :

Les termes liés au processeur sont les suivants :

  • Processeur physique : La puce CPU réelle présente dans le système.
  • Core : Une unité de traitement unique au sein d'un processeur physique.
  • Processeurs logiques : Le nombre total de processeurs virtuels disponibles pour le système d'exploitation.

Ces valeurs peuvent varier, notamment sur les systèmes dotés de processeurs multicœurs et d'hyper-threading.

Trouver le nombre de cœurs :

Processeur physique :

Pour déterminer le nombre de processeurs physiques, utilisez le code suivant :

<code class="language-csharp">foreach (var item in new System.Management.ManagementObjectSearcher("Select * from Win32_ComputerSystem").Get())
{
    Console.WriteLine("物理处理器数量:{0}", item["NumberOfProcessors"]);
}</code>

Noyau :

Pour obtenir le nombre de cœurs, utilisez le code suivant :

<code class="language-csharp">int coreCount = 0;
foreach (var item in new System.Management.ManagementObjectSearcher("Select * from Win32_Processor").Get())
{
    coreCount += int.Parse(item["NumberOfCores"].ToString());
}
Console.WriteLine("核心数量:{0}", coreCount);</code>

Processeur logique :

La classe System.Environment permet un accès direct au nombre de processeurs logiques :

<code class="language-csharp">Console.WriteLine("逻辑处理器数量:{0}", Environment.ProcessorCount);</code>

Remarque : N'oubliez pas d'inclure une référence à System.Management.dll dans votre projet.

Exclure les processeurs sous Windows :

Il est possible de découvrir les processeurs qui ont été exclus par Windows grâce à l'API Windows, par exemple via les paramètres de démarrage :

<code class="language-csharp">static void Main(string[] args)
{
    int deviceCount = 0;
    IntPtr deviceList = IntPtr.Zero;
    // ... (代码省略)
}</code>

Cette méthode fournit une description plus complète du nombre total de processeurs présents dans le système.

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