示例#1
0
 public IDoFlowBuilder Build(IDoFlowBuilder builder)
 {
     builder.StartWith(() =>
     {
         Console.WriteLine("工作流开始");
     }).Then(() =>
     {
         Console.WriteLine("下一个节点");
     }).Then(() =>
     {
         Console.WriteLine("最后一个节点");
     });
     return(builder);
 }
示例#2
0
 public IDoFlowBuilder Build(IDoFlowBuilder builder)
 {
     builder.StartWith()
     .Then(() =>
     {
         Console.WriteLine("任务开始,设置定时器2秒");
     })
     .Schedule(() =>
     {
         Console.WriteLine("我被执行了");
     }, TimeSpan.FromSeconds(2))
     .Then(() =>
     {
         Console.WriteLine("另一个任务我不管他");
     });
     return(builder);
 }
示例#3
0
        public IDoFlowBuilder Build(IDoFlowBuilder builder)
        {
            builder.StartWith()
            .Parallel(steps =>
            {
                // 每个并行任务也可以设计后面继续执行其它任务
                steps.Do(() =>
                {
                    Console.WriteLine("并行1");
                }).Do(() =>
                {
                    Console.WriteLine("并行2");
                });
                steps.Do(() =>
                {
                    Console.WriteLine("并行3");
                });

                // 并行任务设计完成后,必须调用此方法
                // 此方法必须放在所有并行任务 .Do() 的最后
                steps.EndParallel();

                // 如果 .Do() 在 EndParallel() 后,那么不会等待此任务
                steps.Do(() => { Console.WriteLine("并行异步"); });

                // 开启新的分支
                steps.StartWith()
                .Then(() =>
                {
                    Console.WriteLine("新的分支" + Task.CurrentId);
                }).Then(() => { Console.WriteLine("分支2.0" + Task.CurrentId); });
            }, false)
            .Then(() =>
            {
                Console.WriteLine("11111111111111111 ");
            });

            return(builder);
        }
示例#4
0
        /// <summary>
        /// 开始一个工作流
        /// </summary>
        public void Start()
        {
            IDoFlowBuilder builder = DependencyInjectionService.GetService <IDoFlowBuilder>();

            _flow.Build(builder).ThatTask.Start();
        }