C#でforループを使用して複数のスレッドを開始する方法はありますか?
C#では、Parallel.Forメソッドを使用して、マルチスレッドのforループを開始することができます。Parallel.Forメソッドは、forループの反復タスクを自動的に複数のスレッドに割り当てて並行して実行します。
以下是一个使用Parallel.For方法开启多线程的示例:
using System;
using System.Threading.Tasks;
class Program
{
static void Main()
{
// 定义一个需要循环的数组
int[] numbers = { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 };
// 使用Parallel.For开启多线程的for循环
Parallel.For(0, numbers.Length, i =>
{
// 打印当前线程ID和数组元素的值
Console.WriteLine($"Thread {Task.CurrentId} processed element {numbers[i]}");
});
Console.ReadLine();
}
}
この例では、私たちはParallel.Forメソッドを使用して配列numbersをループ処理しました。Parallel.Forメソッドの最初の引数はループの開始インデックスを示し、2番目の引数はループの終了インデックス(終了インデックスは含まれません)を示します。3番目の引数は、ループ処理のタスクを表すラムダ式です。ラムダ式では、現在のスレッドIDと配列要素の値を出力しました。
このプログラムを実行すると、出力に複数のスレッドIDと配列要素の値が含まれており、複数のスレッドが並行してループイテレーションのタスクを実行していることが分かります。