public CoroutineTask Then(ActionHandler onAction) { var next = new CoroutineTask(onAction); //设置父 Task next._parentTask = this; //设置子 Task this._childTask = next; return(next); }
/// <summary> /// 执行任务 /// </summary> /// <param name="previousTask"></param> /// <param name="onCompleted"></param> /// <param name="onError"></param> private void ExecuteTask(CoroutineTask previousTask = null, CompletedHandler onCompleted = null, ErrorHandler onError = null) { if (onCompleted != null) { _onCompleted += onCompleted; } if (onError != null) { _onError += onError; } try { //调用委托指向的方法 _onOnAction(previousTask, Completed, Error); } catch (Exception e) { Error(e); } }
public static CoroutineTask AsCoroutineTask(this IEnumerator enumerator) { return(CoroutineTask.FromRoutine(enumerator)); }
public static CoroutineTask <T> AsCoroutineTask <T>(this IEnumerable <T> enumerable) { return(CoroutineTask.FromRoutine(enumerable.GetEnumerator())); }
public static CoroutineTask <T> AsCoroutineTask <T>(this IEnumerator <T> enumerator) { return(CoroutineTask.FromRoutine(enumerator)); }
internal AsyncTaskEnumerator(CoroutineTask task) { this.task = task; }