Esempio n. 1
0
        public void add(Action increment, Func <int, bool> isDone, float tick, Action clientCallback)
        {
            IncrementalProcess inc = new IncrementalProcess();

            inc.increment = increment;
            inc.isDone    = isDone;
            inc.tick      = tick;
            jobs.Enqueue(inc);
            while (jobs.Count > purgeJobsThreshhold)
            {
                jobs.Dequeue();
            }
            runQueue(clientCallback);
        }
Esempio n. 2
0
 private void runQueue(Action clientCallback)
 {
     if (busy)
     {
         return;
     }
     if (jobs.Count > 0)
     {
         busy    = true;
         current = jobs.Dequeue(); //Dequeueing inside of StartCoroutine crashes Unity??
         StartCoroutine(current.run(() => {
             busy = false;
             clientCallback.Invoke();
             runQueue(clientCallback);
         }));
     }
 }