网创优客建站品牌官网
为成都网站建设公司企业提供高品质网站建设
热线:028-86922220
成都专业网站建设公司

定制建站费用3500元

符合中小企业对网站设计、功能常规化式的企业展示型网站建设

成都品牌网站建设

品牌网站建设费用6000元

本套餐主要针对企业品牌型网站、中高端设计、前端互动体验...

成都商城网站建设

商城网站建设费用8000元

商城网站建设因基本功能的需求不同费用上面也有很大的差别...

成都微信网站建设

手机微信网站建站3000元

手机微信网站开发、微信官网、微信商城网站...

建站知识

当前位置:首页 > 建站知识

并行Linq-创新互联

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Collections.Concurrent;
using System.Threading;
using System.Diagnostics;

namespace ConsoleApplication5
{
    class Program
    {
        static void Main(string[] args)
        {
            //并行LINQ
            //******************************************************
            //测试时间
            Stopwatch sw = Stopwatch.StartNew();
            long l = sw.ElapsedMilliseconds;
            //******************************************************
 
            const int maxsize = 100000000;
            var data = new int[maxsize];
            Random ran = new Random();
            for (int i = 0; i < maxsize; i++)
            {
                checked
                {
                    data[i] = ran.Next(40);
                }
            }
            //===========================================并行查询
            //AsParallel() 启用查询的并行化
            //AsParallel() 返回ParallelQuery,所以Where()、Select()等方法不在返回IEnumerable,而返回ParallelQuery
            var query = (from r in data.AsParallel()
                         select r).Take(20).Select(r => r);
            Foreach(query);
            Console.WriteLine(data.AsParallel().Where(r => r < 20).Sum());

            //===========================================分区器
            List il = Enumerable.Range(0, 10000).ToList();
            //WithExecutionMode(ParallelExecutionMode.ForceParallelism) //强制并行化整个查询
            //WithDegreeOfParallelism() //指定大任务数
            var query2 = (from r in Partitioner.Create(il, true).AsParallel().WithExecutionMode(ParallelExecutionMode.ForceParallelism)
                          where r < 20
                          select r).Sum();
            Console.WriteLine("====================================");
            Console.WriteLine(query2);
            Console.WriteLine("====================================");
            //===========================================取消长时间运行的任务
            var token = new CancellationTokenSource();
            new Thread(() =>
            {
                try
                {
                    var query3 = (from r in il.AsParallel().WithCancellation(token.Token)
                                  where r < 20
                                  select r
                                    ).Sum();
                    Console.WriteLine(query3);
                }
                catch (Exception e) { Console.WriteLine(e); }
            }).Start();
            if (Console.ReadLine() == "y" || Console.ReadLine() == "Y")
            {
                token.Cancel();
            }

            Console.ReadKey();
        }
        public static void Foreach(IEnumerable s)
        {
            Console.WriteLine("==================================");
            foreach (var item in s)
            {
                Console.WriteLine(item);
            }
        }
    }
}

创新互联www.cdcxhl.cn,专业提供香港、美国云服务器,动态BGP最优骨干路由自动选择,持续稳定高效的网络助力业务部署。公司持有工信部办法的idc、isp许可证, 机房独有T级流量清洗系统配攻击溯源,准确进行流量调度,确保服务器高可用性。佳节活动现已开启,新人活动云服务器买多久送多久。

创新互联成立于2013年,我们提供高端网站建设公司成都网站制作网站设计、网站定制、成都全网营销推广小程序制作、微信公众号开发、成都网站营销服务,提供专业营销思路、内容策划、视觉设计、程序开发来完成项目落地,为成都木制凉亭企业提供源源不断的流量和订单咨询。
本文标题:并行Linq-创新互联
网页地址:http://bjjierui.cn/article/eiggd.html

其他资讯