private object Execute(Actions.Action action, object data) { object ret = null; if (action.Skip) { return(null); } CurrentAction = action; var count = action.GetItemCount(this, data); var sea = new StepEventArgs(action, count); for (int i = 0; i < count; i++) { sea.Index = i; Manager.UIThreadCall(() => StepChanged?.Invoke(this, sea)); if (State == ContextState.Stop) { return(null); } else if (State == ContextState.Pause) { _continueEvent.WaitOne(); } ret = action.Execute(this, i, data); if (ret is BreakValue) { return(ret); } if (action is Actions.ParentAction pa && !(action is Actions.Window)) { ExecuteChildren(pa, ret); } } return(ret); }
public override void Execute(Sis owner) { action.Execute(); }
public override void Execute(StateMachine state) { action.Execute(); }