多结果

多种结果/分叉

根据前面步骤的结果,工作流可以采取不同的路径。下面的示例展示了一个流程,其中首先生成一个随机数0或1,这是第一步的结果。然后,根据结果值,工作流将分叉到(TaskA + TaskB)或(TaskC + TaskD)

public class MultipleOutcomeWorkflow : IWorkflow
{
    public void Build(IWorkflowBuilder<object> builder)
    {
        builder
            .StartWith<RandomOutput>(x => x.Name("Random Step"))
                .When(data => 0).Do(then => then
                    .StartWith<TaskA>()
                    .Then<TaskB>())
                .When(data => 1).Do(then => then
                    .StartWith<TaskC>()
                    .Then<TaskD>())
            .Then<SayGoodbye>();
    }
}