【C#】並列処理・Parallel

■ Parallel.For

サンプル

例1
for (int x = 0; x < 100; x++)
{
    this.MethodA(x);
}

private void MethodA(int counter)
{
    // 重い処理
}
例2
// 処理1と同じ処理。ただし、非同期なので、0~100のランダムに実行される。
Parallel.For(0, 100, (x) => this.MethodA(x));

■ Parallel.ForEach

サンプル

例1
foreach(var x in list)
{
    this.MethodA(x);
}

private void MethodA(int counter)
{
    // 重い処理
}
例2
// 処理1と同じ処理。ただし、非同期なので、0~100のランダムに実行される。 
IList<int> list = Enumerable.Range(0, 100).ToList();
Parallel.ForEach(list, (x) => this.MethodA(x));