博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

并行操作(Parallel) 笔记(二)

Posted on 2012-03-30 17:23  蔡豹  阅读(260)  评论(0)    收藏  举报

继续上一篇文章学习Parallel.

在上章中说道用并行操作在一千万条数据中搜索给定条件的数据比普通的for循环或foreach循环要快近一倍,本次在用linq和linq中的parallel与parallel.For进行比较:

(数据还是上一章中的)

linq查询:

      /// <summary>
/// Linq查询
/// </summary>
/// <returns></returns>
public static List<string> SearchByLinq()
{
var query = from a in testData where a == "abc" || a == "a" select a;
return query.ToList();
}

linq中使用AsParallel查询:

  /// <summary>
/// 启用并行查询Linq查询
/// </summary>
/// <returns></returns>
public static List<string> SearchByParallel()
{
var query = from a in testData.AsParallel() where a == "abc"|| a=="a" select a;
return query.ToList();
}

 

在控制台中用Stopwatch计算时间运行结果如下:

 

从结果中可以看出:linq中使用Asparallel查询比用parallel.For查询快了进9倍多,而普通的linq也比parallel.For快了近4.5倍