• ConditionedActivityGroup


     

    1.可以通过定义条件触发CAG组中的某个Activity

    2.拖入CAG中的每各个Activity 都有一个When Condition ,

    When Condition有两种方式,一种是CodeCondition 一种是RuleConditionReferences

    When Condition条件满足时,在CAG的每个轮询周期内,该Activity 会执行一次

    Activity When Condition可以不设,这时,该Activity只在第一次轮询时被执行,以后的轮询都不会被执行了



     

    3.CAG有一个Until condition 属性,条件成立时,该CAG就退出轮询,结点完成

    CAG轮询每一次新轮询开始时,会查看Until condition ,如果条件成立就退出,完成结点

     CAGUntil condition 属性可以不设,这时只CAG轮询不到When Condition条件成立还成立的Activity时,才完成结点



     

    4.CAG的每个轮询周期内,只要有ActivityWhen Condition条件成立,该Activity就会被执行一次

     在下一个CAG轮询周期内,如果该ActivityWhen Condition条件成立还成立,仍会被执行,直到When Condition条件不成立

     


    5.
    如果控制不好ActivityWhen Condition,与CAGUntil condition,可能会出现一个死循环


    例:





     

            bool 标记A = true;

            bool 标记B = true;

            int 标记I = 0;

     bool 标记CAG = false; //是否退出CAG

    CAG

    规则

    this.标记CAG == True

    结点代码

    A

    规则

            private void A_规则(object sender, ConditionalEventArgs e)

            { e.Result = 标记A;}

    结点代码

            private void A_ExecuteCode(object sender, EventArgs e)

            { Console.WriteLine("标记A对应的Activity");

                标记A = false;  //可以去掉此处再看一下效果 }

    B

    规则

            private void B_规则(object sender, ConditionalEventArgs e)

            { e.Result = 标记B;}

    结点代码

            private void B_ExecuteCode(object sender, EventArgs e)

            Console.WriteLine("标记B对应的Activity");

                //   标记B = false; //可以打开此处再看一下效果 }

    I

    规则

    this.标记I <= 10

    结点代码

            private void I_ExecuteCode(object sender, EventArgs e)

            { 标记I = 标记I + 1;

                Console.WriteLine("标记I:" + 标记I.ToString()); }

    N

    规则

    结点代码

            private void N_ExecuteCode(object sender, EventArgs e)

            {Console.WriteLine("没有绑定规则的Activity只运行一次");}

    CAG_

    manager

    规则

    1 == 1

    结点代码

            private void CAG_manager_ExecuteCode(object sender, EventArgs e)

            Console.WriteLine("------------------");

                if (标记I == 10)

                标记CAG = true;}        }


  • 相关阅读:
    springsecurity 注解开发
    springsecurity 授权
    【ElasticSearch】集群搭建
    【CentOS7.9】防火墙配置使用
    【CentOS7.9】创建及挂载共享文件夹
    查看Linux发行版
    【Spring Cloud】spring-cloud2020和spring-cloud-alibaba2021问题记录
    【Spring Cloud】spring.factories
    三剑客-----grep
    git安装
  • 原文地址:https://www.cnblogs.com/foundation/p/527817.html
Copyright © 2020-2023  润新知