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