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 ,如果條件成立就退出,完成結點
?CAG的Until condition 屬性可以不設,這時只CAG輪詢不到When Condition條件成立還成立的Activity時,才完成結點
?
4.在CAG的每個輪詢周期內,只要有Activity的When Condition條件成立,該Activity就會被執行一次
?在下一個CAG輪詢周期內,如果該Activity的When Condition條件成立還成立,仍會被執行,直到When Condition條件不成立
?
5.如果控制不好Activity的When Condition,與CAG的Until 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;}??????? } | |
轉載于:https://www.cnblogs.com/foundation/archive/2006/10/12/527817.html
總結
以上是生活随笔為你收集整理的ConditionedActivityGroup的全部內容,希望文章能夠幫你解決所遇到的問題。