/// <summary> /// continue to the next logical strategy (without executing the procedure of this strategy) /// </summary> public Proc.Result ContinueChain(Incident incident) { if (!Next.WaitForUpdate) { return(Next.InvokeChain(incident)); } Proc.Delay(0, delayedIncident => Next.InvokeChain(incident)); return(Proc.Result.Success); }
public Strategy ThenDelay(string identifier, int ms, Proc.edure procedure = null) { Strategy deferringStrategy = null; deferringStrategy = ThenImmediately("(wait)" + identifier, incident => { Strategy deferredStrategy = new Strategy(identifier, procedure, this); deferredStrategy.Next = deferringStrategy.Next; deferredStrategy.IsDeferred = true; Proc.Delay(ms, deferredStrategy.InvokeChain); return(Proc.Result.Halt); }); return(deferringStrategy); }