public override void Clear() { base.Clear(); foreach (var work in RunningWorks) { GameFramework.ReferencePool.Release(work); } foreach (var work in CompleteWorks) { GameFramework.ReferencePool.Release(work); } RunningWorks.Clear(); CompleteWorks.Clear(); }
protected override void UpdateCore(float elapseSeconds, float realElapseSeconds) { for (int i = RunningWorks.Count - 1; i >= 0; i--) { var work = RunningWorks[i]; if (work.WorkStatus == WorkStatus.Running) { work.Update(elapseSeconds, realElapseSeconds); } if (work.WorkStatus == WorkStatus.Complete) { CompleteWorks.Add(work); RunningWorks.RemoveAt(i); } } }