ホームページ > バックエンド開発 > C++ > .NET/C# で CPU コア数を取得するにはどうすればよいですか?

.NET/C# で CPU コア数を取得するにはどうすればよいですか?

Susan Sarandon
リリース: 2025-01-18 20:20:17
オリジナル
403 人が閲覧しました

How Can I Retrieve the CPU Core Count in .NET/C#?

.NET/C# の CPU コア数を取得します

アプリケーションで使用できる CPU コアの数を決定することは、パフォーマンスを最適化するために重要です。 .NET/C# では、この情報を抽出する方法が複数あります。

1. 環境.プロセッサ数

このプロパティは、システム上の論理プロセッサの数を提供します。ただし、物理プロセッサとハイパースレッド コアは区別されません。

Console.WriteLine("逻辑处理器数量: {0}", Environment.ProcessorCount);
ログイン後にコピー

2. Win32_プロセッサ

WMI (Windows Management Instrumentation) を使用すると、プロセッサに関する詳細情報にアクセスできます:

物理プロセッサ:

foreach (var item in new System.Management.ManagementObjectSearcher("Select * from Win32_ComputerSystem").Get())
{
    Console.WriteLine("物理处理器数量: {0}", item["NumberOfProcessors"]);
}
ログイン後にコピー

コア数:

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);
ログイン後にコピー

3. 除外されるプロセッサ

さらに、Windows API 呼び出しを使用して、Windows で除外されたプロセッサを検出できます。次のコードは、除外されたプロセッサを含む論理プロセッサの合計数を表示します:

int deviceCount = 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))
        {
            deviceCount = deviceNumber;
            break;
        }
    }
}
finally
{
    if (deviceList != IntPtr.Zero) { SetupDiDestroyDeviceInfoList(deviceList); }
}
Console.WriteLine("核心数量: {0}", deviceCount);
ログイン後にコピー

以上が.NET/C# で CPU コア数を取得するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート