Visual Studio 2010日本語版がMSDNサブスクライバダウンロードに出てきて、まずはホッとしました。
テストプログラム §
まずは.NET Framework 4.0の機能を必要とするプログラムを1本。
using System;
using System.Threading;
using System.Threading.Tasks;
class Program
{
static void Main(string[] args)
{
Parallel.For(0, 10, (n) => {
Thread.Sleep(10000 - n * 1000);
Console.WriteLine(n);
});
}
}
実行結果 §
5
1
6
7
8
0
3
2
9
4
つまり §
for文で回していれば数値が順番に出てくるはずなので、パラレルに実行されているということですね。ちなみに、実行したマシンは2コアです。
これを見てはたと思ったのは、ラムダ式を湯水のように多用するスタイルの先には、パラレルがあるということ。プログラムの断片を簡単に変数に入れてメソッドに渡せるということは、メソッドが実行タイミングをスケジューリングするのも容易ということですね。パラレルは難しいと思っていましたが、ラムダ式やデリゲート型という中間ステップを踏むと割と難しくなかったのかも。