/// <summary>
 /// 根据流程配置获取其对应的所有补偿事件
 /// </summary>
 /// <param name="process"></param>
 /// <returns></returns>
 public ConcurrentStack <ProcessConfigureBase> GetProcessCallbackList(ProcessConfigureBase process)
 {
     if (process != null && CallbackList.TryGetValue(process.Key, out ConcurrentStack <ProcessConfigureBase> thisCallbackList))
     {
         return(thisCallbackList);
     }
     else
     {
         return(new ConcurrentStack <ProcessConfigureBase>());
     }
 }
        /// <summary>
        /// 创建一个流程配置,并注册到管道事件
        /// </summary>
        /// <param name="process"></param>
        /// <param name="callback"></param>
        public void SetProcess(ProcessConfigureBase process, ProcessConfigureBase callback = null)
        {
            process.Key = Guid.NewGuid().ToString();
            Processes.Enqueue(process);
            var thiscallback = new ConcurrentStack <ProcessConfigureBase>();

            if (CallbackList.TryGetValue(lastProcessesKey, out ConcurrentStack <ProcessConfigureBase> lastcallback))
            {
                foreach (var item in lastcallback)
                {
                    thiscallback.Push(item);
                }
            }
            lastProcessesKey = process.Key;
            if (callback != null)
            {
                thiscallback.Push(callback);
            }
            CallbackList.TryAdd(lastProcessesKey, thiscallback);
        }