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); }
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)); }