Esempio n. 1
0
 public void AddTask(int type, IEnumeratorTask task)
 {
     if (!mapTasks.ContainsKey(type))
     {
         InitialTask(type);
     }
     mapTasks[type].Addition(task);
 }
Esempio n. 2
0
        public void PostIEnumeratorTask(IEnumeratorTask task)
        {
            if (task == null)
            {
                return;
            }

            mIEnumeratorTaskStack.AddLast(task);
            TryStartNextIEnumeratorTask();
        }
Esempio n. 3
0
 public void Addition(IEnumeratorTask task)
 {
     if (mlistTask.Contains(task))
     {
         LogCtrl.Warn("AddTask  Contains   Type : " + TaskType);
         return;
     }
     mlistTask.Add(task);
     TryExcuteNextTask();
 }
Esempio n. 4
0
 private void TryExcuteNextTask()
 {
     if (mlistTask.Count > 0 && CurrentCount < MaxCount)
     {
         CurrentCount++;
         IEnumeratorTask task = mlistTask[0];
         mlistTask.RemoveAt(0);
         EnumeratorTaskManager.Instance.ExecuteTask(task, ExecuteFinish);
     }
 }
Esempio n. 5
0
        private void TryStartNextIEnumeratorTask()
        {
            if (m_IEnumeratorTaskList.Count == 0)
            {
                return;
            }

            IEnumeratorTask task = m_IEnumeratorTaskList.First.Value;

            m_IEnumeratorTaskList.RemoveFirst();

            StartCoroutine(task.StartIEnumeratorTask(TryStartNextIEnumeratorTask));
        }
Esempio n. 6
0
        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));
        }
Esempio n. 7
0
 public void ExecuteTask(IEnumeratorTask task, System.Action finishCallback)
 {
     StartCoroutine(task.DoLoadAsync(finishCallback));
 }