> 백엔드 개발 > C++ > .NET/C#에서 CPU 코어 수를 얻는 방법은 무엇입니까?

.NET/C#에서 CPU 코어 수를 얻는 방법은 무엇입니까?

Barbara Streisand
풀어 주다: 2025-01-18 19:51:10
원래의
1026명이 탐색했습니다.

How to Get the Number of CPU Cores in .NET/C#?

.NET/C#을 사용하여 CPU 코어 수 검색

.NET/C#은 시스템에서 사용 가능한 CPU 코어 수를 식별하는 여러 가지 방법을 제공합니다. 다음은 몇 가지 접근 방식입니다.

1. 물리적 프로세서:

이 방법은 설치된 물리적 프로세서 수를 계산합니다.

foreach (var item in new System.Management.ManagementObjectSearcher("Select * from Win32_ComputerSystem").Get())
{
    Console.WriteLine($"Number of Physical Processors: {item["NumberOfProcessors"]}");
}
로그인 후 복사

2. 프로세서당 코어 수:

이 접근 방식은 모든 프로세서의 코어 수를 합산합니다.

int totalCores = 0;
foreach (var item in new System.Management.ManagementObjectSearcher("Select * from Win32_Processor").Get())
{
    totalCores += int.Parse(item["NumberOfCores"].ToString());
}
Console.WriteLine($"Total Number of Cores: {totalCores}");
로그인 후 복사

3. 논리 프로세서:

이것은 총 논리 프로세서 수(하이퍼스레딩 포함)에 직접 액세스합니다.

Console.WriteLine($"Number of Logical Processors: {Environment.ProcessorCount}");
로그인 후 복사

4. 프로세서(Windows에 숨겨진 프로세서 제외):

이 방법은 표준 Windows 보고에서 제외될 수 있는 프로세서를 설명합니다. 설정 API를 사용해야 합니다.

int processorCount = 0;
IntPtr deviceList = IntPtr.Zero;
Guid processorGuid = new Guid("{50127dc3-0f36-415e-a6cc-4cb3be910b65}");

try
{
    deviceList = SetupDiGetClassDevs(ref processorGuid, "ACPI", IntPtr.Zero, (int)DIGCF.PRESENT);
    for (int deviceNumber = 0; ; deviceNumber++)
    {
        SP_DEVINFO_DATA deviceInfo = new SP_DEVINFO_DATA();
        deviceInfo.cbSize = Marshal.SizeOf(deviceInfo);
        if (!SetupDiEnumDeviceInfo(deviceList, deviceNumber, ref deviceInfo))
        {
            processorCount = deviceNumber;
            break;
        }
    }
}
finally
{
    if (deviceList != IntPtr.Zero) { SetupDiDestroyDeviceInfoList(deviceList); }
}
Console.WriteLine($"Number of Cores (including hidden): {processorCount}");
로그인 후 복사

중요 고려 사항:

  • System.Management.dll: 프로젝트에 System.Management.dll에 대한 참조를 추가하는 것을 잊지 마세요.
  • 시스템 업데이트: 일부 시스템에서는 정확한 결과를 얻으려면 전체 시스템 업데이트(핫픽스 및 서비스 팩)가 필요할 수 있습니다. 자세한 프로세서 정보의 가용성은 시스템 구성 및 업데이트에 따라 다릅니다.

위 내용은 .NET/C#에서 CPU 코어 수를 얻는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
저자별 최신 기사
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿