public virtual void UnDo(ExecuteUnit unit) { if (!statusDic.ContainsKey(unit)) { statusDic[unit] = new UnitStatus(); } }
public virtual void Execute(ExecuteUnit unit) { if (!statusDic.ContainsKey(unit)) { statusDic[unit] = new UnitStatus(); } switch (statusDic[unit].statu) { case ExecuteStatu.UnStarted: ExecuteOnUnStarted(unit); break; case ExecuteStatu.Executing: ExecuteOnExecuting(unit); break; case ExecuteStatu.Completed: ExecuteOnCompleted(unit); break; default: break; } }
/// <summary> /// 结束一组执行 /// </summary> /// <param name="unit"></param> protected void CompleteExecuteChildGroups(ExecuteUnit unit) { var childs = unit.childUnits.ToArray(); foreach (var list in childs) { foreach (var item in list) { if (!statusDic.ContainsKey(item)) { statusDic[item] = new UnitStatus(); } if (statusDic[item].statu != ExecuteStatu.Completed) { stateMechine.Complete(item); } } } }