せっかく.NET4.0 betaが入っているので、ついついAsParallelを使ってみるわな。
どうやら、LINQインターフェースに対して、AsParallel()を実行すると並列実行型のインターフェースにバインドされるらしい。
まずはサンプルコード
using System; using System.Collections.Generic; using System.Linq; using System.Text; class Program { static void Main(string[] args) { int counter = 0; IList<Action<int>> funList = new List<Action<int>>(); funList.Add(num => Console.WriteLine("1{0}●", num)); funList.Add(num => Console.WriteLine("2{0}◎", num)); funList.Add(num => Console.WriteLine("3{0}○", num)); funList.Add(num => Console.WriteLine("4{0}▽", num)); funList.Add(num => Console.WriteLine("5{0}△", num)); funList.AsParallel().ForAll(func => func(++counter)); Console.ReadLine(); } }
上記を実行してふらふらと試してみたのですが、実行結果が以下の2パターン観測されます。
//結果その1 41▽ 12● 24◎ 35○ 53△ //結果その2 11● 23◎ 34○ 42▽ 55△
なんだろう・・・。この2パターンしか観測されなかった・・・。
以下の参考サイトで使い方を見てみましたが、まだまだ分らない事だらけだ・・・。