예제 #1
0
 /// <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);
 }
예제 #2
0
        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);
        }