温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

Task三个列子的分享

发布时间:2020-07-11 17:06:36 来源:网络 阅读:237 作者:26度出太阳 栏目:网络安全

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

1.顺序任务执行

Task三个列子的分享 View Code

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

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

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

  效果图:

  Task三个列子的分享

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

 

  2.并行任务效果

Task三个列子的分享 View Code

  关键词语及意思如下:

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

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

  效果:

  Task三个列子的分享

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

 

3.分页任务执行方法

Task三个列子的分享 View Code

  测试代码:

Task三个列子的分享 View Code

Task三个列子的分享 View Code

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

  效果图:

  Task三个列子的分享


向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI