예제 #1
0
        /// <summary>
        /// 更新
        /// </summary>
        private void UpdateGroup()
        {
            int index = 0;

            while (index < m_ListLoaderGroups.Count)
            {
                LoaderGroup group = m_ListLoaderGroups[index];
                group.Update();

                if (group.isFinish)
                {
                    LoaderGroupPool.Release(group);
                    m_ListLoaderGroups.RemoveAt(index);
                }
                else
                {
                    ++index;
                }
            }

            while (m_ListLoaderGroups.Count < kMaxGroupCount)
            {
                if (!StartNextGroup())
                {
                    break;
                }
            }
        }
예제 #2
0
        /// <summary>
        /// 获得加载组
        /// </summary>
        /// <returns></returns>
        public LoaderGroup PopGroup(LoadPriority priority = LoadPriority.Normal)
        {
            LoaderGroup group = LoaderGroupPool.Get(this);

            group.priority = priority;
            m_DicLoaderGroupWaits[priority].Enqueue(group);
            return(group);
        }