如何在 C# 中查找 CPU 核心数?

csharpserver side programmingprogramming

我们可以获得与处理器相关的几条不同信息

  • 物理处理器数量
  • 核心数
  • 逻辑处理器数量

这些都可能不同;对于具有 2 个双核超线程处理器的机器,则有 2 个物理处理器、4 个内核和 8 个逻辑处理器。

逻辑处理器的数量可通过 Environment 类获得,但其他信息只能通过 WMI 获得(并且您可能必须安装一些修补程序或服务包才能在某些系统上获取它)−

在项目中添加对 System.Management.dll 的引用。在 .NET Core 中,这可作为 NuGet 包使用(仅适用于 Windows)。

物理处理器

示例

class Program{
   public static void Main(){
      foreach (var item in new
      System.Management.ManagementObjectSearcher("Select * from
      Win32_ComputerSystem").Get()){
         Console.WriteLine("Number Of Physical Processors: {0} ",
         item["NumberOfProcessors"]);
      }
      Console.ReadLine();
   }
}

输出

Number Of Physical Processors: 1

核心

class Program{
   public static void Main(){
      int coreCount = 0;
      foreach (var item in new
      System.Management.ManagementObjectSearcher("Select * from
      Win32_Processor").Get()){
         coreCount += int.Parse(item["NumberOfCores"].ToString());
      }
      Console.WriteLine("Number Of Cores: {0}", coreCount);
      Console.ReadLine();
   }
}

输出

Number Of Cores: 2

逻辑处理器

class Program{
   public static void Main(){
      Console.WriteLine("Number Of Logical Processors: {0}",
      Environment.ProcessorCount);
      Console.ReadLine();
   }
}

输出

Number Of Logical Processors: 4

相关文章