示例#1
0
        public IDisposable Execute(IContextState <IEnumerator> state,
                                   IContext context)
        {
            var routine = state.Execute(context);
            var dispose = routine.RunWithSubRoutines();

            return(dispose);
        }
示例#2
0
        public void Execute()
        {
            if (IsActive || _behaviour == null)
            {
                return;
            }

            IsActive = true;

            //activate state
            var routine        = _behaviour.Execute(_entity);
            var disposableItem = routine.RunWithSubRoutines();

            //add lifetime cleanup actions
            LifeTime.AddDispose(disposableItem);
            LifeTime.AddCleanUpAction(_behaviour.Exit);
        }
示例#3
0
        private void StartState(IContextState <TAwaiter> state, IContext context)
        {
            var routine = state.Execute(context);

            _stateExecution = _stateExecutor.Execute(routine);
        }