深入探索工作流与数据绑定技术
1. 复合活动的构建与执行
复合活动体现了一种父子关系,其中复合活动作为父活动,可以调用一个或多个子活动。子活动的调用方式(串行或并行)以及执行顺序(优先级排序或按堆叠顺序)完全由复合活动的开发者决定。
复合活动常作为控制活动,有助于控制活动的执行顺序,例如 If
、 While
和 ForEach
等活动,它们会根据条件决定执行哪些子活动。
下面以 HelloWorld_CompositeActivity
为例,该活动可以包含零个或多个子活动实例,并且支持子活动的顺序和并行执行,用户可通过设置 IsExecutionSequential
属性指定执行模式。
protected override void Execute(NativeActivityContext context)
{
if (IsExecutionSequential)
{
// 调度第一个活动
if (this.Activities.Count > 0)
context.ScheduleActivity(this.Activities[0], this.OnChildCompleted);
}
else
{
foreach (Activity child in this.Activities)
{