Exemple #1
0
        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();
        }
Exemple #2
0
        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();
        }