/// <summary> /// 添加加载任务 /// </summary> /// <param name="group">加载组</param> /// <param name="type">类型</param> /// <param name="path">路径</param> /// <param name="param">附加参数</param> /// <param name="onLoaded">回调</param> /// <param name="async">异步</param> /// <param name="priority">优先级</param> /// <param name="insert">插入</param> /// <returns></returns> public void AddLoadTask(LoaderGroup group, Loader.LoaderType type, string path, object param, LoadMgr.GroupLoadedCallback onLoaded, bool async, LoadMgr.LoadPriority priority = LoadMgr.LoadPriority.Normal, bool insert = false) { if (!async) { Loader loader = PopLoader(type, path, param, false); PushCallback(loader, (data) => { if (onLoaded != null) { onLoaded(group, data); } }); loader.Load(); PushLoader(loader); return; } if (group == null) { group = PopGroup(priority); } group.Add(type, path, param, onLoaded, true, insert); }
/// <summary> /// 获得加载组 /// </summary> /// <returns></returns> public LoaderGroup PopGroup(LoadMgr.LoadPriority priority = LoadMgr.LoadPriority.Normal) { LoaderGroup group = m_groupPool.Count > 0 ? m_groupPool.Dequeue() : new LoaderGroup(this); group.Priority = priority; m_waitGroups[priority].Enqueue(group); return(group); }