public IEnumerator TestStaggeredMonoRunner() { yield return(null); //careful, runners can be garbage collected if they are not referenced somewhere and the //framework does not keep a reference using (var staggeredMonoRunner = new StaggeredMonoRunner("staggered", 4)) { ValueObject val = new ValueObject(); for (int i = 0; i < 16; i++) { new SimpleEnumeratorClassRef(val).RunOnScheduler(staggeredMonoRunner); } Assert.That(staggeredMonoRunner.numberOfQueuedTasks, Is.EqualTo(16)); staggeredMonoRunner.Step(); Assert.That(staggeredMonoRunner.numberOfRunningTasks, Is.EqualTo(12)); staggeredMonoRunner.Step(); Assert.That(staggeredMonoRunner.numberOfRunningTasks, Is.EqualTo(8)); staggeredMonoRunner.Step(); Assert.That(staggeredMonoRunner.numberOfRunningTasks, Is.EqualTo(4)); staggeredMonoRunner.Step(); Assert.That(staggeredMonoRunner.numberOfRunningTasks, Is.EqualTo(0)); Assert.That(val.counter, Is.EqualTo(16)); } }
void OnEnable() { UnityConsole.Clear(); _runner = new StaggeredMonoRunner("StaggeredRunner", MaxTasksPerFrame); for (int i = 0; i < 300; i++) { TaskRunner.Instance.RunOnSchedule(_runner, PrintFrame); } }
void OnEnable() { UnityConsole.Clear(); _runner = new StaggeredMonoRunner("StaggeredRunner", MaxTasksPerFrame); for (int i = 0; i < 300; i++) { PrintFrame().Run(_runner); } }