Task三个列子的分享

这次要分享的是C#Task任务的几个列子,感觉最实用的是封装的分页任务执行方法,这个方法步奏也是目前在我工作中执行多任务常用的,不知道各位也有这用的情况,那么开始吧。

1.顺序任务执行

 

  上面的代码中也备注了一些文字说明,其中有关键词语及意思如下:

  .Task.Factory.StartNew:创建一个Task实例,创建后自动开启,无需在调用Start;

  .ContinueWith:看单词的意思就明了,是继续的意思,在这里的效果也是等待上一个Task执行完毕了在继续执行本次任务,这里方法里面每个任务是一层一层传递的

  效果图:

  

  这里有个地方注意,sleep这是了5s但是这里使用Stopwatch统计出来只有4999ms,这个地方存在差异性,本章不解释,有兴趣朋友可以分享下或研究下。

  2.并行任务效果

 

  关键词语及意思如下:

  .Func<object, int>这个是C#新增的特性,这个和Action最大的区别就是Func有返回值,其他的和Action相同任意长度参数个数和类型

  .Task.WaitAll这个方法有几个重载,这里用的是一个超时时间的方法,设置时间后在规定的时间就不继续等待Task【】了,如果task【】在超时时间范围内就执行完了,那么直接通过,不用再等待超时时间

  效果:

  

这里依然有统计时间查问题,忽略

3.分页任务执行方法

 

  测试代码:

 

 

  这里使用的是分页的原理,把参数集合分发到创建的Task中,使用Task【】来处理这些数据,这里和第二个例子有点相识就多了分页写法而已,最后统计执行成功的条数,以此来返回给调用者,方便记录日志,此方法目前是我经常使用的,不知道是否还有更好的,各位多多分享,谢谢。

  效果图:

  

时间: 2024-10-26 14:32:29

Task三个列子的分享的相关文章

金三银四,分享自己找工作的经历

博主在原公司工作了一年三个月,本来年后是找工作的高峰期,而三月份找工作是最有利的.但是出于团队对博主的赞赏有加,外加和领导私人关系也非常不错,所以没想着跳槽.但是一想到自己的房贷和家父的白发,博主内心其实是苦涩不堪.尽管领导非常器重我,让我做项目经理,博主在部门中的声望也极高,部门唯一一个S级特级绩效也给了博主,但是苦于薪资谈判一直进展不顺,博主辞职之心日益强烈.于是某日晚上,博主想通了,还是辞职吧,自己也需要更大的舞台.为了表示对领导的尊重,博主第二天一大早到公司就和领导坦白了,领导也没画大饼

第三记“晋IT”分享成长沙龙

2014年8月17日下午4点-7点,第三期"晋IT"分享成长沙龙在太原大自然蒙特梭利幼儿园多功能厅成功举办. 8月17日下午两点.小编领先来到场地,提前探訪一下准备情况. "晋IT"分享成长沙龙举办地:太原大自然蒙特梭利幼儿园,位于体育路长风街交叉口附近,途经该地点的公交有:824.849.51.877.840.812等. 详细在地图上的位置见下图: 天宫不作美,已经准备飘起小雨,小编按着宣传内容找到了这块宝地.顺着楼梯走上去.走近看见门上的一个不起眼的指示单. w

C# Thread、delegate、Task三种异步进行对比

1.Thread [线程] 不断创建 Thread 会消耗很大的cup 导致 异步效率变慢 2.delegate[委托异步] 由于需要不断的实例化 委托类 将会消耗cup 和 内存 3.Task [结合  async] 这种是三种中性能最好的  较低的cup和内存损耗 下面是例子: #region 委托异步 和  asycn 异步进行对比        /// <summary>        /// 运行        /// </summary>        /// <

Hive快捷查询:不启用Mapreduce job启用Fetch task三种方式介绍

如果查询表的某一列,Hive中默认会启用MapReduce job来完成这个任务,如下: hive>select id,name from m limit 10;--执行时hive会启用MapReduce job 我们都知道,启用MapReduce Job是会消耗系统开销的.对于这个问题,从Hive0.10.0版本开始,对于简单的不需要聚合的类似 SELECT <col> from <table> LIMIT n语句,不需要起MapReduce job,直接通过Fetch t

php正则表达式的三个最基本原则分享

我个人认为,正则表达式的常规用法可以分为如下三个最基本的原则:1.找谁.2.怎么找.3.找它干什么. 接下来,我分享一下一个正则表达式分三个部分: 原子字符 . 匹配除换行符以外的任意字符 \w 匹配一个字母或数字或下划线 \s 匹配一个空白符 \d 匹配一个数字 \b 匹配单词的开始或结束的位置(匹配一个位置) ^ 匹配字符串的开始 $ 匹配字符串的结束 表示范围 [] 匹配括号中的任意一个字符 量词 重复0次或更多次 重复1次或更多次 ? 重复0次或1次 {n} 重复n次 {n,} 重复n次

一分钟快三有什么技巧规律,如何快三回血上岸,分享快三走势公式。

导师(359213571)曾经软件计划10连中,我跟第一把就死:我在想我到底是有多背?这么小的几率都能被我赶上?后来想了很多,想明白了一个问题,我们是在赌,也就是在赌运气,而运气有好的时候也有坏的 时候,都是有一定概率的,可能我们每次都投机取巧的中了,但是终究逃不过会有挂的那一天, 而那一天可能会让你挂的一败涂地,从此翻不了身.如果你此刻十分困难,不要灰心,放平心态,先想想此刻对你来说,到底什么最为重要,是技 术还是本金,是心态还是人脉,把自己梳理清晰,然后设定好步骤,不要慌不要乱,天无绝人之

备战“金三银四”:分享面试小技巧及必问面试题(含答案!)

面试技巧 1.背熟你的简历 原因:面试的第一个问题,一般都是让你简单介绍下你自己,或者介绍一下你最近的项目,而一个面试者,如果连自己的简历都无法熟知,对里面提到的项目.技术都无法描述清楚的话,我想没有哪家公司会接受这样的,哪怕你是超级人才,你自我表述不行,估计也会为此头疼,所以,切记:一定要背好自己的简历,不要求你能全部记下,至少要熟记你最近所待过的两家公司,这两家公司里面你做过的项目,你负责的模块,项目里面用到的技术以及相对应的技术实现方案(这个尤为重要). 2.深入了解并熟记部分Java基础

UIActivityViewController的相关用法(三)--自定义分享方式(比第三方分享库轻便)

使用UIActivityViewController自定义分享的方式, 以下代码创建一个UIActivityViewController,可以用AirDrop.邮件.QQ.微信分享,AirDrop分享是数据传输,其他三项是文本分享,可以在实现了UIActivityItemSource协议的item类中控制, // 创建UIActivityViewController,并呈现 -(void)createAndShowActivityViewController { // 构造自定义Activiti

第三十七课 Spark之Task执行原理及结果

主要内容 1.     Task执行原理流程图 2.     Task执行源码 3.     Task执行结果在Driver端的处理 一.Task在Executor(worker)端执行及返回Driver流程图 图37-1 Driver端与Executor交互图 二.Executor(worker)端执行源码解析 1.接收Driver端发来的消息 当Driver中的SchedulerBackend给ExecutorBackend发送LaunchTask之后,ExecutorBackend在接收到