読者です 読者をやめる 読者になる 読者になる

Parallel.Forって何だ?

C#

昨日の勉強会でParallel.Forというもの存在を知ったのですが、どんな機能なのかよく分かりませんでした。

そしたらコメント欄で「Parallel Extensions to the .NET Framework 3.5」で利用できるよ、と教えてもらったので*1、さっそく使ってみました。

まずは、下記のサイトから「ParallelExtensions_Jun08CTP.msi」をダウンロードしてきます。

インストールが完了したら、プロジェクトの参照設定の追加で「System.Threading」を追加します。


すると、以下のようなコードがかけます。

using System;
using System.Threading;

class Program
{
    static void Main(string[] args)
    {
        Parallel.For(0, 10, x => Console.WriteLine(x));
    }
}

この例ではConsole.WriteLine(x)という処理が、10個並列に実行されます。

実行してみると、0〜9の数値が毎回異なる順序で表示されます。

PLINQというものもあって、AsParallelをつけると、クエリが並列に実行されるらしい。

Robotics StudioのCCR(Concurrency and Coordination Runtime)や、DLINQとは全然関係ない代物なのかな?


サンプルプログラムについていた数独で、ついつい遊びすぎてしまったのは秘密ですw

*1:検索かけてみると、普段チェックしているブログで紹介されてました。思いっきりスルーしてたんだろうな・・・orz