任务三个列子的分享

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

1。顺序任务执行

叭挝袢隽凶拥姆窒怼?,</p

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

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

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

效果图:

叭挝袢隽凶拥姆窒?

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

,

2。并行任务效果

叭挝袢隽凶拥姆窒怼?,</p

关键词语及意思如下:

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

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

效果:

叭挝袢隽凶拥姆窒?

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

,

3。分页任务执行方法

叭挝袢隽凶拥姆窒怼?,</p

测试代码:

叭挝袢隽凶拥姆窒怼?,</p

叭挝袢隽凶拥姆窒怼?,</p

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

效果图:

叭挝袢隽凶拥姆窒?


任务三个列子的分享