C#
 Computer >> コンピューター >  >> プログラミング >> C#

C#でコンピューターのCPUコア総数を取得する方法

C#では、Environment.ProcessorCountプロパティを使用することで、コンピューターに搭載されている論理プロセッサ(コア)の総数を簡単に取得できます。

Environment.ProcessorCountとは

Environment.ProcessorCountは、System名前空間のEnvironmentクラスが提供する静的プロパティです。このプロパティは、現在のプロセスで利用可能な論理プロセッサの数をint型の値として返します。

マルチスレッド処理やタスクの並列化を行う際に、適切なスレッド数を決定するために活用されることが多く、パフォーマンス最適化の場面で非常に便利です。

使用例

以下は、Environment.ProcessorCountを使ってコンピューターのコア総数をコンソールに表示するサンプルコードです。

using System;

namespace Demo {
    class Program {
        static void Main(string[] args) {
            // コアの総数を取得して表示
            Console.WriteLine(Environment.ProcessorCount);
        }
    }
}

実行結果

このプログラムを実行すると、環境に応じた数値が出力されます。たとえば、8つの論理プロセッサを搭載したマシンであれば、次のように表示されます。

8

補足

  • 返される値は物理コア数ではなく、ハイパースレッディングなどによる論理プロセッサ数です。
  • 仮想化環境やコンテナ環境では、割り当てられたプロセッサ数が返される場合があります。
  • .NET Core 3.0以降では、プロセスごとのCPUアフィニティやcgroupの制限も考慮された値が返されます。

このように、Environment.ProcessorCountを使えば1行のコードでコア数を取得できるため、並列処理の設計時にぜひ活用してください。

  1. C#プログラムで配列内の「1」の出現回数を数える方法

    この記事では、C#を使って配列内に含まれる「1」の個数をカウントする方法を解説します。基本的な考え方はシンプルで、配列の各要素を順番にチェックし、「1」と一致した回数を変数に記録していくだけです。処理の流れまず、カウント対象となる数字を配列に格納します。int[] num = new int[] {1, 25, 1, 55, 1};次に、foreachループで配列の全要素を走査し、要素が「1」と等しい場合は、出現回数を記録する変数(カウンター)をインクリメントします。foreach(int j in num) {     if (j == 1) { &n

  2. C#で文字列内の単語数をカウントする方法を解説

    C#で文字列に含まれる単語の数をカウントするには、文字列を先頭から1文字ずつ走査し、空白・タブ・改行などの区切り文字を検出する方法が基本となります。ここでは、その具体的な実装手順とサンプルコードを紹介します。1. 文字列の宣言まず、カウント対象となる文字列を宣言します。string str = Hello World!;2. 区切り文字の検出ロジック次に、whileループを使って文字列全体を走査し、半角スペース( )、改行(\n)、タブ(\t)のいずれかが見つかるたびに単語数のカウンターを増やします。while (a <= str.Length - 1) { if(str[a]=