示例#1
0
        public static Handler Start(ICollection <Task> tasks,
                                    TArgument argument,
                                    Action <Handler> doneCallback    = null,
                                    CancellableSignal overrideSignal = null)
        {
            var coHandle = new Handler(tasks, argument, doneCallback, overrideSignal);

            CoroutineTaskManager.AddTask(CoroutinePipeline <TArgument> .MainTask(coHandle));

            return(coHandle);
        }
示例#2
0
        protected override void OnStart()
        {
            UnityAsyncHandler.Input input = this.In as UnityAsyncHandler.Input;
            if (null == input)
            {
                throw new ArgumentException(string.Format("UNITY_ASYNC_HANDER_INVALID_INPUT:{0}, INPUT:{1}, INPUT_TYPE:{2}",
                                                          this.GetType().Name,
                                                          null != this.In ? this.In.ToString() : "null",
                                                          null != this.In ? this.In.GetType().Name : "null"));
            }

            SubRoutine[] subRoutines = this.GetSubRoutines();
            if (null == subRoutines)
            {
                throw new ArgumentException(string.Format("UNITY_ASYNC_HANDER_SUBROUTINE_IS_NULL:{0}",
                                                          this.GetType().Name));
            }

            CoroutineTaskManager.AddTask(this.Routine(input, subRoutines));
        }