首页 > Windows开发 > 详细

C#并行编程---PLINQ

时间:2020-02-11 13:57:17      阅读:66      评论:0      收藏:0      [点我收藏+]

技术分享图片

 

 实列:

Console.WriteLine("Hello World!");
Console.WriteLine("当前计算机处理器数:{0}", Environment.ProcessorCount);
ConcurrentQueue<Product> products = new ConcurrentQueue<Product>();
/*向集合中添加多条数据 可以修改数据量查看Linq和Plinq的性能*/
Parallel.For(0, 60000000, (num) =>
{
products.Enqueue(new Product() { Category = "Category" + num, Name = "Name" + num, SellPrice = num });
});

/*采用LINQ查询符合条件的数据*/
Stopwatch sw = new Stopwatch();
sw.Restart();
var productListLinq = from product in products
where (product.Name.Contains("1") && product.Name.Contains("2") && product.Category.Contains("1") && product.Category.Contains("2"))
select product;
Console.WriteLine("采用Linq 查询得出数量为:{0}", productListLinq.Count());
sw.Stop();
Console.WriteLine("采用Linq 耗时:{0}", sw.ElapsedMilliseconds);

Console.WriteLine(DateTime.Now);
/*采用PLINQ查询符合条件的数据*/
sw.Restart();
var productListPLinq = from product in products.AsParallel() /*AsParallel 试图利用运行时所有可用的逻辑内核,从而使运行的速度比串行的版本要快 但是需要注意开销所带来的性能损耗*/
where (product.Name.Contains("1") && product.Name.Contains("2") && product.Category.Contains("1") && product.Category.Contains("2"))
select product;
Console.WriteLine("采用PLinq 查询得出数量为:{0}", productListPLinq.Count());
sw.Stop();
Console.WriteLine(DateTime.Now);

Console.WriteLine("采用PLinq 耗时:{0}", sw.ElapsedMilliseconds);
Console.ReadLine();

C#并行编程---PLINQ

原文:https://www.cnblogs.com/tianxujun/p/12294423.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!