Computer >> 컴퓨터 >  >> 프로그램 작성 >> C#

C#에서 CPU 코어 수를 찾는 방법은 무엇입니까?

<시간/>

얻을 수 있는 프로세서와 관련된 여러 가지 정보가 있습니다.

  • 물리적 프로세서 수
  • 코어 수
  • 논리 프로세서 수

모두 다를 수 있습니다. 2개의 듀얼 코어 하이퍼 스레딩 지원 프로세서가 있는 시스템의 경우 2개의 물리적 프로세서, 4개의 코어 및 8개의 논리 프로세서가 있습니다.

논리 프로세서의 수는 환경 클래스를 통해 사용할 수 있지만 다른 정보는 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