ホームページ >バックエンド開発 >C++ >.NET/C# アプリケーションの CPU コアの数を確認するにはどうすればよいですか?

.NET/C# アプリケーションの CPU コアの数を確認するにはどうすればよいですか?

Patricia Arquette
Patricia Arquetteオリジナル
2025-01-18 19:57:09888ブラウズ

How Can I Determine the Number of CPU Cores in My .NET/C# Application?

.NET/C# の CPU コアの数を決定する

.NET/C# アプリケーションのリソース使用率を最適化するには、利用可能な CPU コアの数を理解することが重要です。この記事では、開発者がマルチスレッドとパフォーマンスの最適化について情報に基づいた意思決定を行えるように、この情報を取得するいくつかの方法を説明します。

物理プロセッサ、コア、論理プロセッサ

物理プロセッサ、コア、論理プロセッサの数を区別することが重要です。物理プロセッサは実際のハードウェア ユニットを表し、コアはプロセッサ内の単一の実行ユニットです。論理プロセッサはコアを仮想化したもので、オペレーティング システムがスレッドを別個のエンティティとして提示することで、より効率的にスレッドをスケジュールできるようになります。

コア数を取得します

.NET/C# では、CPU コアの数を取得する方法がいくつかあります。

論理プロセッサ (環境クラス)

Environment クラスは、論理プロセッサの数へのアクセスを提供します:

<code class="language-csharp">Console.WriteLine("逻辑处理器数量:{0}", Environment.ProcessorCount);</code>

コア (WMI)

WMI (Windows Management Instrumentation) を使用すると、コアの数を取得できます:

<code class="language-csharp">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);</code>

物理プロセッサ (WMI)

.NET Core では、WMI を使用して物理プロセッサの数を取得できます。

<code class="language-csharp">foreach (var item in new System.Management.ManagementObjectSearcher("Select * from Win32_ComputerSystem").Get())
{
    Console.WriteLine("物理处理器数量:{0}", item["NumberOfProcessors"]);
}</code>

Windows で除外されるプロセッサ (Windows API)

setupapi.dll の Windows API 呼び出しにより、Windows で除外されたプロセッサを検出できます:

<code class="language-csharp">static void Main(string[] args)
{
    int deviceCount = 0;
    IntPtr deviceList = IntPtr.Zero;
    // 处理器类ID的GUID
    Guid processorGuid = new Guid("{50127dc3-0f36-415e-a6cc-4cb3be910b65}");
    ...
    Console.WriteLine("核心数量:{0}", deviceCount);
}</code>

概要

この記事では、.NET/C# で CPU コアの数を取得するいくつかの方法を説明します。これらの手法を理解することで、開発者はリソースの使用率を最適化し、スレッドのワークロードのバランスをとり、アプリケーションのパフォーマンスを向上させることができます。

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

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。