public void Run() { Canceled = false; int CurrN = 0; foreach (AbstractAction runningAction in runningActions) { if (!Canceled) { CurrN++; currAction = runningAction; runningAction.Run(); //окончание if (!Canceled) { // сообщение об окончании if (OnEndAction != null) { ExecutionActionFinishDelegateArgs args = new ExecutionActionFinishDelegateArgs(); args.Last = CurrN >= runningActions.Count; OnEndAction(this, args); } } } } }
private void newAction_OnExecute(AbstractAction action, ExecuteDelegateArgs args) { if(OnExecute!=null) { args.runningAction = action; OnExecute(this, args); } }
public void AddAction(AbstractAction newAction) { runningActions.Add(newAction); newAction.OnExecute += newAction_OnExecute; }