asp.net 并行执行,异步执行

88 篇文章 0 订阅
1 篇文章 0 订阅

任务并行库 (TPL) 基于“任务”的概念,可代表异步操作。 在某些方面,任务类似于线程或 ThreadPool 工作项,但是抽象级别更高。 术语“任务并行”是指一个或多个独立的任务同时运行。 任务提供两个主要好处:

  • 系统资源的使用效率更高,可伸缩性更好。

    在后台,任务排队到 ThreadPool,其已使用算法进行增强,这些算法能够确定并调整到可提供最大化吞吐量负载平衡的线程数。 这会使任务相对轻量,您可以创建很多任务以启用细化并行。

  • 对于线程或工作项,可以使用更多的编程控件。

    任务和围绕它们生成的框架提供了一组丰富的 API,这些 API 支持等待、取消、继续、可靠的异常处理、详细状态、自定义计划等功能

//并行执行方法 ALL_Products是一个方法

System.Threading.Tasks.Parallel.Invoke(() => ALL_Products(iWine));

  /// <summary>
        ///好评排行(重新赋值)并行循环
        /// </summary>
        /// <param name="OladData">产品好评</param>
        /// <returns></returns>
        private List<ChartProScoreDto> Copey_Pro2(List<ChartProScoreDto> OladData)
        {
            List<ChartProScoreDto> utlist = new List<ChartProScoreDto>();
            if (OladData == null)
            {
                return utlist;
            }
          
            System.Threading.Tasks.Parallel.ForEach(OladData,item =>
            {
                //foreach (ChartProScoreDto item in OladData)
                // {
                ChartProScoreDto NewPro = new ChartProScoreDto();


                EnYuan.DEV.Mongo.EntityHelper.CopyProperties(item, ref NewPro);
                var place = Get_TastPlace(item.PlaceId);
                var pro = GetProduct(item.ProId);
                if (place != null)
                {
                    NewPro.PlaceId = place.Name;//体验点名称
                }
                if (pro != null)
                {
                    NewPro.ProId = pro.Name;//产品名称
                }               
                lock (utlist)
                {
                    utlist.Add(NewPro);
                }
                // }
            });
            //排序
            return utlist.OrderByDescending(c => c.Score).ToList();
        }


更多介绍到:http://msdn.microsoft.com/zh-cn/library/dd537609(v=vs.110).aspx


评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Bingo_BIG

你的鼓励是我最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值