zoukankan      html  css  js  c++  java
  • Parallel Stop与Break的理解

        普通for循环、foreach循环中有break/continue用于流程控制,在Parallel中也有用于流程控制的方法,即ParallelLoopState类的Stop/Break方法。

        一、Stop方法用于退出Paraller循环

        看下面的代码:

     1             var ltNum = new List<int>();
     2             for (int i = 1; i <= 10; i++)
     3             {
     4                 ltNum.Add(i);
     5             }
     6             Parallel.For(0, ltNum.Count, (i, loopState) =>
     7             {
     8                 if (i > 5)
     9                 {
    10                     loopState.Stop();
    11                     return;
    12                 }
    13                 Console.WriteLine("下标:{0},值:{1}", i, ltNum[i]);
    14             });

        其中loopState是ParallelLoopState类实例,用于并行循环流程控制。

        注意第10行:loopState.Stop(); 表示立刻退循环,不论后面要执行的循环是否满足i>5这个条件。

        二、Break用于根据条件过滤循环

        假如将上面第10行代码改为:loopState.Break(); 则表示后面满足i>5的循环不再执行,但其它的循环体还是要执行的。

        注意:不论是Break还是Stop方法,后面的return语句是必须的,否则当前循环体第13行的语句还是会被执行。

        三、总结

        下面用一个表格比较Parallel中的Stop/Break方法与普通循环中的continue/break语句的类比。

    ParrallelLoopState实例方法 Stop() Break()
    作用 退出循环,后面的循环体均不执行 满足相应条件的循环体不执行
    相当于普通循环的语句 break; continue
  • 相关阅读:
    常见问题汇总
    python的正则表达式
    Python 程序读取外部文件、网页的编码与JSON格式的转化
    第三方仓库PyPI
    文件名称一定不要设置为某些模块名称,会引起冲突!
    迟来的博客
    FENLIQI
    fenye
    Notif
    phpv6_css
  • 原文地址:https://www.cnblogs.com/huatao/p/4702049.html
Copyright © 2011-2022 走看看