Parallel Extensions to .NET については間違いなく +1 です。Microsoft は、ThreadPool を改善するためにここでいくつかの素晴らしい作業を行いました。以前は、ワーカー スレッドから生成されたものであっても、すべてのタスクを処理する 1 つのグローバル キューがありました。現在、ワーカー スレッドごとにロックフリーのグローバル キューとローカル キューがあります。とてもいい改善です。
Parallel.For、Parallel.Foreach、Parallel.Invoke (リージョン) などはあまり好きではありません。クラス ライブラリではなく、純粋な言語拡張であるべきだと考えているからです。明らかに、この中間ステップがある理由は理解していますが、C# が同時実行性のために言語を改善することは避けられず、それを利用するためにコードを変更して元に戻さなければならないことも同様に避けられません :-)
全体として、.NET で並行アプリを構築することを検討している場合は、Parallel Extensions について詳しく調べる必要があります。また、これはマイクロソフトのかなり初期の取り組みであることを考えると、自分のスキルレベルが並行性であると認識しているかどうかに関係なく、何がうまくいき、何がうまくいかないかについて非常に声に出す必要があると思います. Microsoft は確かに耳を傾けていますが、Parallel Extensions をまだ使用している人はそれほど多くないと思います。私は昨日 VSLive レドモンドにいて、このトピックに関するセッションを見て、これに取り組んでいるチームに感銘を受け続けています.
開示: 以前は Visual Studio のマーケティング ディレクターでしたが、現在はCorensicというスタートアップに所属しており、並行アプリのバグを検出するツールを構築しています。