.Net 3.5中使用PLinq

看了许多博客试图了解在.Net 3.5下使用PLinq
结果发现所有指向微软这些资源(似如Microsoft Parallel Extensions to Framework 3.5)的下载已经被撤销,无法找到,资源的页面重定向到其他的页面
感觉超级蛋疼,
后来无意找到一个dll成功使3.5下的Linq支持AsParallel()方法,对于这种方式实现并行查询是否存在什么问题作为菜鸟的我就不得而知了。
运行结果如下图,在这个简单的例子中发现使用了AsParallel后效率有极大的提升。 


附部分代码:
using System.Linq;
using System.Threading;
using System.Threading.Tasks;

private static string withAsParallel (DCDataContext dc)
        {
            System.Diagnostics.Stopwatch stopwatch = new Stopwatch();
            IQueryable<tb_ticket> zz = null;
            stopwatch.Start(); 
            for (int i = 0; i < 20; i++)
            {
                zz=from t in dc.tb_tickets.AsParallel()     //where  blablabla省略
                        select t;
            }
            stopwatch.Stop(); //  停止监视
            TimeSpan timespan = stopwatch.Elapsed; //  获取当前实例测量得出的总时间
            double milliseconds = timespan.TotalMilliseconds;  //  总毫秒数
            return milliseconds.ToString();
         }

        private static string withOutAsParallel (DCDataContext dc)
        {
            System.Diagnostics.Stopwatch stopwatch = new Stopwatch();
            IQueryable<tb_ticket> zz = null;
            stopwatch.Start(); //  开始监视代码运行时间
            for (int i = 0; i < 20; i++)
            {
                zz=from t in dc.tb_tickets  //WithoutAsParallel  where  blablabla省略
                        select t;
            }
            stopwatch.Stop(); 
            TimeSpan timespan = stopwatch.Elapsed; //  获取当前实例测量得出的总时间
            double milliseconds = timespan.TotalMilliseconds;  //  总毫秒数
            return milliseconds.ToString();
}
//Main函数
  static void Main(string[] args)
        {
            DCDataContext dc = new DCDataContext();
           for (int i = 50; i > 0; i--)
            {
                  Console.WriteLine("NoParallel:" + withOutAsParallel(dc) + "ms" + " Parallel:" + withAsParallel(dc) + "ms");
                 Console.WriteLine("Parallel:" + withAsParallel(dc) + "ms" + " NoParallel:" + withOutAsParallel(dc) + "ms");
            }
        }
PS:
附件:http://download.csdn.net/detail/lin437922751/4653381 

将System.Threading.dll引用到项目中


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值