C# Parallel.For/ForEach 並列処理の実践ガイド
C#のParallelクラスは、複数のタスクを並行して実行する簡単な方法を提供しています。Parallelクラスを使用すると、1つのタスクを複数のサブタスクに分割して、これらのサブタスクを並行して実行することが簡単に行えます。
Parallelクラスには、Parallel.ForやParallel.ForEachなどの静的メソッドが用意されています。これらのメソッドは、それぞれforループやコレクションの要素を並行して実行するために使用されます。
Parallel.Forメソッドを使用すると、forループを並列で実行することができます。例を以下に示します:
Parallel.For(0, 10, i =>
{
Console.WriteLine(i);
});
Parallel.ForEachメソッドを使用すると、コレクション内の要素を並行して実行できます。以下に例を示します。
List<int> numbers = new List<int> { 1, 2, 3, 4, 5 };
Parallel.ForEach(numbers, number =>
{
Console.WriteLine(number);
});
Parallelクラスを使用することで、マルチコアプロセッサの性能を最大限に活用して、プログラムの実行効率を向上させることができます。しかし、並行実行にはスレッドセーフティの問題が発生する可能性があるため、共有リソースへのアクセスを慎重に処理する必要があります。