public void OnUpdate() { int index = 0; Loader loader = null; while (index < m_Loaders.Count) { loader = m_Loaders[index]; loader.OnUpdate(); if (loader.isFinish) { m_Loaders.RemoveAt(index); if (!m_LoaderQueue.Contains(loader)) { LoaderPool.Release(loader); } CheckNextTask(); } else { ++index; } } UpdateAsyncCallback(); }
private void ClearLoader() { for (int i = 0; i < m_Loaders.Count; ++i) { m_Loaders[i].Stop(); } for (int i = 0; i < m_Loaders.Count; ++i) { LoaderPool.Release(m_Loaders[i]); } for (int i = 0; i < m_LoaderQueue.Count; ++i) { LoaderPool.Release(m_LoaderQueue.Dequeue()); } m_Loaders.Clear(); m_LoaderQueue.Clear(); }