/// <summary>
        ///  追加活动管道
        /// </summary>
        /// <typeparam name="TPassivePara"></typeparam>
        /// <typeparam name="TResult"></typeparam>
        /// <param name="pipe"></param>
        /// <param name="exeFunc">
        /// 执行委托
        /// 参数:
        ///     当前活动上下文信息
        /// 结果:
        ///     TrafficSignal &lt;TResult &gt; -(活动是否处理成功,业务结果)
        ///         Green_Pass  - 流体自动流入后续管道
        ///         Yellow_Wait - 管道流动暂停等待(仅当前处理业务),既不向后流动,也不触发Block。
        ///         Red_Block - 触发Block,业务流不再向后续管道传递。
        /// </param>
        /// <param name="pipeCode"></param>
        /// <returns></returns>
        public static SimpleEffectActivity <TPassivePara, TResult> AppendEffectActivity <TPassivePara, TResult>(
            this IPipeAppender <TPassivePara> pipe,
            Func <TPassivePara, Task <TrafficSignal <TResult> > > exeFunc, string pipeCode = null)
        {
            var nextPipe = new SimpleEffectActivity <TPassivePara, TResult>(pipeCode, exeFunc);

            pipe.InterAppend(nextPipe);
            return(nextPipe);
        }
        /// <summary>
        ///  追加活动管道
        /// </summary>
        /// <typeparam name="TNextRes"></typeparam>
        /// <typeparam name="TOut"></typeparam>
        /// <param name="pipe"></param>
        /// <param name="exeFunc">
        /// 执行委托
        /// 结果:
        ///     TrafficSignal &lt;TResult &gt; -(活动是否处理成功,业务结果)
        ///         Green_Pass  - 流体自动流入后续管道
        ///         Yellow_Wait - 管道流动暂停等待(仅当前处理业务),既不向后流动,也不触发Block。
        ///         Red_Block - 触发Block,业务流不再向后续管道传递。
        /// </param>
        /// <param name="pipeCode"></param>
        /// <returns></returns>
        public static SimpleEffectActivity <TNextRes> AppendEffectActivity <TOut, TNextRes>(
            this IPipeAppender <TOut> pipe,
            Func <Task <TrafficSignal <TNextRes> > > exeFunc, string pipeCode = null)
        {
            var nextPipe = new SimpleEffectActivity <TNextRes>(pipeCode, exeFunc);

            pipe.InterAppend(nextPipe);
            return(nextPipe);
        }