卓越飞翔博客卓越飞翔博客

卓越飞翔 - 您值得收藏的技术分享站
技术文章20163本站已运行347

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

<?xml encoding="utf-8" ?>

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

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

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

这些都可以不同;以启用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
卓越飞翔博客
上一篇: C# 中的抽象类、密封类与类成员
下一篇: 返回列表
留言与评论(共有 0 条评论)
   
验证码:
隐藏边栏