internal ThreadManagerTask Add(Action NewTask, Action calcComplete) { ThreadManagerTask EnqueueTask = new ThreadManagerTask(NewTask, calcComplete); if (ProcessStack.Count < 100) { EnqueueTask.Added = true; ProcessStack.Enqueue(EnqueueTask); } else { EnqueueTask.Added = false; } return(EnqueueTask); }
internal void Update() { if (CurrentTask.IsComplete) { if (ThreadTask != null) { ThreadTask.IsComplete = true; ThreadTask = null; } if (ProcessStack.TryDequeue(out ThreadTask)) { CurrentTask = ThreadTask.Run(); } else { } } }