65.9K
CodeProject 正在变化。 阅读更多。
Home

代码字节 #1 – PLINQ 基础

starIconemptyStarIconemptyStarIconemptyStarIconemptyStarIcon

1.00/5 (1投票)

2010年2月25日

CPOL
viewsIcon

10144

PLINQ / 并行 LINQ 是 TPL(任务并行库)的一部分,它使你在多核处理器编程方面的工作更加轻松,这与多线程完全不同。多线程允许每个进程拥有多个线程,但你无法确定它们是否会均匀地分布在

PLINQ / 并行 LINQ 是 TPL(任务并行库)的一部分,它使你在多核处理器编程方面的工作更加轻松,这与多线程完全不同。多线程允许每个进程拥有多个线程,但你无法确定它们是否会均匀地分布在 CPU 核心上。要使用 PLINQ,你的对象必须在内存中。这意味着你不能在将所有查询结果带到本地机器之前,在 LINQ to SQL 上使用 AsParallel。在并行运行代码时,要记住的关键是 AsParallel 方法是你的朋友。在第一次调用 AsParallel 之后返回的每个结果始终是一个 ParallelQuery 对象。你可以在 这里 获得更多理论知识。现在去编码吧!

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Linq.Expressions;

namespace OliverCode.CodeBytes
{
    class ParallelLinqCB
    {
        static void Main(string[] args)
        {
            Action<int> action = (int itemFromList) => Console.Write(itemFromList + ",");
            var lst = Enumerable.Range(1, 10);

            //This will use the maximum number of processors on your machine up to 64
            lst.AsParallel().Select(i => i * i).ForAll(action);
            Console.WriteLine();
            //My machine has 4 cores but i only need it to use up to 2 cores so I use the WithDegreeOfParallelism to restrict it
            lst.AsParallel().WithDegreeOfParallelism(2).ForAll(action);

            Console.Read();
        }
    }
}

裁剪图表由 MSDN PFX(并行编程框架)提供
Code Bytes 1 - PLINQ


© . All rights reserved.