Exemple #1
0
    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);
    }
Exemple #2
0
    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);
    }
Exemple #3
0
 private void addBackgroundLoadTask(BackgroundLoadTask task)
 {
     pendingTasks.Add(task);
 }
Exemple #4
0
    private IEnumerator runBackgroundLoadTask1(BackgroundLoadTask t, IEnumerator coroutine)
    {
        yield return(StartCoroutine(coroutine));

        t.isDone = true;
    }