public static void scheduleBackgroundLoadTask(string name, int priority, IEnumerator coroutine) { var t = new BackgroundLoadTask(); t.name = name; t.priority = priority; t.coroutine = Instance.runBackgroundLoadTask1(t, coroutine); Instance.addBackgroundLoadTask(t); }
private IEnumerator runBackgroundLoadTask2(BackgroundLoadTask t, System.Action func) { var thread = new Thread(() => { func(); t.isDone = true; }); thread.Priority = System.Threading.ThreadPriority.BelowNormal; thread.Start(); do { yield return(null); } while (!t.isDone); }
private void addBackgroundLoadTask(BackgroundLoadTask task) { pendingTasks.Add(task); }
private IEnumerator runBackgroundLoadTask1(BackgroundLoadTask t, IEnumerator coroutine) { yield return(StartCoroutine(coroutine)); t.isDone = true; }