使用 ConditionedActivityGroup 活动
ConditionedActivityGroup 活动包含子活动的集合,这些子活动的执行顺序受应用于这些子活动的条件控制。 有关条件的更多信息,请参见在工作流中使用条件。
ConditionedActivityGroup 活动的条件驱动的执行逻辑提供多种方式确定子活动的执行顺序,包括一种类似于 ParallelActivity 活动的并行活动执行,以及一种循环类型的行为。 例如,使用 ConditionedActivityGroup 活动可以根据每个活动的特定条件,按条件循环访问活动集,直至 Until 条件对于 ConditionedActivityGroup 整体为 true。
通过 UntilConditionProperty 可将 Until 条件应用到 ConditionedActivityGroup 活动。 通过使用 WhenConditionProperty 可以向 ConditionedActivityGroup 中的每个第一代子活动分别应用 When 条件。 如果不指定 Until 条件,则当没有执行子活动,并且 ConditionedActivityGroup 每个第一代子活动的 When 条件的计算结果都为 false 时,ConditionedActivityGroup 活动就完成了。 如果不指定活动的 When 条件,则活动仅执行一次。
ConditionedActivityGroup 活动首次开始执行时,将计算其 Until 条件。 如果 Until 条件的计算结果为 false,则计算 ConditionedActivityGroup 活动所含的所有第一代子活动的 When 条件。 如果某个活动的 When 条件的计算结果为 true,则计划执行该活动。 每次完成一个第一代子活动时,都会再次计算此 Until 和 When 条件。
每次所执行的子活动完成执行时,都会重新计算 ConditionedActivityGroup 活动的 Until 条件,以及所有不处于执行状态的第一代子活动的 When 条件。 因此,根据刚完成的活动中发生的情况,可以对其他第一代子活动确定新执行计划或重新确定执行计划。 只要 ConditionedActivityGroup 活动的 Until 条件计算结果为 true,就会立即取消当前正在执行的所有子活动。
如果子活动执行多次,则每次迭代都会单独创建该活动的实例。 这样,这些实例可以独立地执行(还可能以并行方式执行,如 ReplicatorActivity 活动)。 因此,活动树(称为模板)中的活动的定义永远不会执行,并总是处于 Initialized 状态。 对模板的运行实例的访问由作为模板父级的复合活动提供。 例如,对于 ConditionedActivityGroup 活动,始终存在一个活动的实例,GetDynamicActivity 可返回该实例。
有关更多信息,请参见 Windows Workflow Foundation 类库参考中 System.Workflow.Activities 命名空间的 ConditionedActivityGroup 类。
有关演示如何使用 ConditionedActivityGroup 活动的代码示例,请参见Using the ConditionedActivityGroup。
请参见
参考
ConditionedActivityGroup
UntilConditionProperty
WhenConditionProperty
概念
在工作流中使用条件
使用 ParallelActivity 活动
如何:通过代码使用条件
“规则和条件”概述
其他资源
Rules and Conditions Samples
Using ConditionedActivityGroup Sample
Windows Workflow Foundation 活动
版权所有 (C) 2007 Microsoft Corporation。保留所有权利。