public void AddTask(int type, IEnumeratorTask task) { if (!mapTasks.ContainsKey(type)) { InitialTask(type); } mapTasks[type].Addition(task); }
public void PostIEnumeratorTask(IEnumeratorTask task) { if (task == null) { return; } mIEnumeratorTaskStack.AddLast(task); TryStartNextIEnumeratorTask(); }
public void Addition(IEnumeratorTask task) { if (mlistTask.Contains(task)) { LogCtrl.Warn("AddTask Contains Type : " + TaskType); return; } mlistTask.Add(task); TryExcuteNextTask(); }
private void TryExcuteNextTask() { if (mlistTask.Count > 0 && CurrentCount < MaxCount) { CurrentCount++; IEnumeratorTask task = mlistTask[0]; mlistTask.RemoveAt(0); EnumeratorTaskManager.Instance.ExecuteTask(task, ExecuteFinish); } }
private void TryStartNextIEnumeratorTask() { if (m_IEnumeratorTaskList.Count == 0) { return; } IEnumeratorTask task = m_IEnumeratorTaskList.First.Value; m_IEnumeratorTaskList.RemoveFirst(); StartCoroutine(task.StartIEnumeratorTask(TryStartNextIEnumeratorTask)); }
private void TryStartNextIEnumeratorTask() { if (m_IEnumeratorTaskStack.Count == 0) { return; } if (m_CurrentCoroutineCount >= m_MaxCoroutineCount) { return; } IEnumeratorTask task = m_IEnumeratorTaskStack.First.Value; m_IEnumeratorTaskStack.RemoveFirst(); ++m_CurrentCoroutineCount; StartCoroutine(task.StartIEnumeratorTask(OnIEnumeratorTaskFinish)); }
public void ExecuteTask(IEnumeratorTask task, System.Action finishCallback) { StartCoroutine(task.DoLoadAsync(finishCallback)); }