//physicScheduler -> updateScheduler -> coroutineScheduler -> lateScheduler internal static void KillSchedulers() { if (_multiThreadScheduler != null) { _multiThreadScheduler.Dispose(); } _multiThreadScheduler = null; #if UNITY_5 || UNITY_5_3_OR_NEWER if (_coroutineScheduler != null) { _coroutineScheduler.Dispose(); } if (_physicScheduler != null) { _physicScheduler.Dispose(); } if (_lateScheduler != null) { _lateScheduler.Dispose(); } if (_updateScheduler != null) { _updateScheduler.Dispose(); } _coroutineScheduler = null; _physicScheduler = null; _lateScheduler = null; _updateScheduler = null; #endif }
public static void StopAndCleanupAllDefaultSchedulers() { foodScheduler.Dispose(); doofusesLogicScheduler.Dispose(); UIInteraction.Dispose(); rendererScheduler.Dispose(); physicScheduler.Dispose(); }
void OnDisable() { foreach (Transform trans in transform) { Destroy(trans.gameObject); } //don't forget to dispose the runners! _unityThreadRunner.Dispose(); TaskRunner.StopAndCleanupAllDefaultSchedulers(); }
public IEnumerator TestUnityWaitInParallel() { var updateMonoRunner = new UpdateMonoRunner("test1"); ITaskRoutine <IEnumerator> taskRoutine = TaskRunner.Instance.AllocateNewTaskRoutine(updateMonoRunner); ParallelTaskCollection pt = new ParallelTaskCollection(); pt.Add(new WaitForSecondsUnity().GetEnumerator()); pt.Add(new WaitForSecondsUnity().GetEnumerator()); taskRoutine.SetEnumerator(pt); taskRoutine.Start(); DateTime then = DateTime.Now; while (taskRoutine.isRunning == true) { yield return(null); } updateMonoRunner.Dispose(); var totalSeconds = (DateTime.Now - then).TotalSeconds; Assert.That(totalSeconds, Is.InRange(0.9, 1.1)); }
public static void StopAndCleanupAllRunners() { MainThreadRunner.Dispose(); }