public static Coroutine2 <TResult> Start <TResult, TParam>(Coroutine2.CoroutineDelegate <TResult, TParam> coroutine, TParam param) { var coResult = new CoroutineResult <TResult>(); var enumtor = coroutine(coResult, param); var co = new Coroutine2 <TResult>(enumtor, coResult); var runner = Get(); lock (runner._coroutines) { runner._coroutines.AddLast(co); } return(co); }
internal Coroutine2(IEnumerator enumtor, CoroutineResult resulter) : base(enumtor, resulter) { }