博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
C#多线程之Parallel中 类似于for的continue,break的方法
阅读量:7219 次
发布时间:2019-06-29

本文共 1476 字,大约阅读时间需要 4 分钟。

  好久没写东西了,终于找到点知识记录下。。。

利用ParallelLoopState对象来控制Parallel.For函数的执行,ParallelLoopState对象是由运行时在后台创建的:

Parallel.For(1, 100, (i, ParallelLoopState) =>{...});

这个对象有两个函数,Stop和Break,可以分别用来控制Parallel.For的执行。

调用Stop,表示Parallel.For的执行立刻停止,无论其他执行单元是否达到停止的条件。而如果我们使用Break,则表示满足条件的当前执行单元立刻停止,而对于其他执行单元,其中满足停止条件也会通过Break停止,其他未满足停止条件的则会继续执行下去,从而全部执行完毕,自然停止。当所有执行单元停止后,Parallel.For函数才停止执行并退出。

break类似于for的continue,而stop就类似于for的break。

Parallel.For(1, 100, (i, ParallelLoopState) =>            {                  // 当某一个循环单元的数大于30,                // 则跳出当前执行单元,等待其他执行单元结束                // 所有执行单元结束后退出Parallel.For的执行                if (i > 30)                {                    // 跳出当前执行单元                    ParallelLoopState.Break();                    return;//不加return,可能会发生该进程资源未释放。                }            });
Parallel.For(1, 100, (i, ParallelLoopState) =>            {                // 当某一个循环单元的数大于30,                // 则停止Parallel.For的执行                if ( i > 30)                {                    // 停止并退出Parallel.For                    ParallelLoopState.Stop();                    return;                }            });

Parallel.ForEach中ParallelLoopState对象的函数也采用相同的方式调用:

1             Parallel.ForEach(elements, (element, ParallelLoopState) =>2             {3                 if (element == "")4                 {5                     ParallelLoopState.Break();6                     return;7                 }8             });

 

转载于:https://www.cnblogs.com/WMTcore/p/3913066.html

你可能感兴趣的文章
定位、指南针、地理编码
查看>>
Kafka 简介
查看>>
MySQL 用户连接与用户线程
查看>>
RabbitMq、ActiveMq、Kafka和Redis做Mq对比
查看>>
C# 图片处理(压缩、剪裁,转换,优化)
查看>>
Linux bridge-utils tunctl 使用
查看>>
Leetcode Pascal's Triangle II
查看>>
运行shell脚本报错 '\357\273\277': command not found 解决的方法
查看>>
android studio 0.8.1使用和遇到问题解决
查看>>
云服务器ECS选购集锦之六区域选择帮助
查看>>
云虚机选购指南之二云虚拟主机试用帮助文档
查看>>
女友眼中的IT男
查看>>
Excel连接
查看>>
java基础-多线程学习
查看>>
WPF打印原理,自定义打印
查看>>
HTML5 5
查看>>
箭头css
查看>>
Python入门,以及简单爬取网页文本内容
查看>>
顺丰科技笔试回忆
查看>>
excel技巧
查看>>