代码字节 #1 – PLINQ 基础
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(并行编程框架)提供
CodeProject