Task三个列子的分享-创新互联

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

成都创新互联:公司2013年成立为各行业开拓出企业自己的“网站建设”服务,为1000+公司企业提供了专业的网站制作、做网站、网页设计和网站推广服务, 定制网站制作由设计师亲自精心设计,设计的效果完全按照客户的要求,并适当的提出合理的建议,拥有的视觉效果,策划师分析客户的同行竞争对手,根据客户的实际情况给出合理的网站构架,制作客户同行业具有领先地位的。

1.顺序任务执行

Task三个列子的分享 View Code

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

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

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

效果图:

Task三个列子的分享

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

2.并行任务效果

Task三个列子的分享 View Code

关键词语及意思如下:

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

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

效果:

Task三个列子的分享

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

3.分页任务执行方法

Task三个列子的分享 View Code

测试代码:

Task三个列子的分享 View Code

Task三个列子的分享 View Code

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

效果图:

Task三个列子的分享

另外有需要云服务器可以了解下创新互联scvps.cn,海内外云服务器15元起步,三天无理由+7*72小时售后在线,公司持有idc许可证,提供“云服务器、裸金属服务器、高防服务器、香港服务器、美国服务器、虚拟主机、免备案服务器”等云主机租用服务以及企业上云的综合解决方案,具有“安全稳定、简单易用、服务可用性高、性价比高”等特点与优势,专为企业上云打造定制,能够满足用户丰富、多元化的应用场景需求。


当前名称:Task三个列子的分享-创新互联
转载源于:http://azwzsj.com/article/djjshs.html