Example #1
0
        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);
        }
Example #2
0
        public static Coroutine2 Start(IEnumerator enumtor)
        {
            var co     = new Coroutine2(enumtor, null);
            var runner = Get();

            lock (runner._waitQueue)
            {
                runner._waitQueue.Enqueue(co);
            }
            //lock (_coroutines)
            //{
            //    _coroutines.AddLast(co);
            //}
            return(co);
        }