Esempio n. 1
0
        /// <summary>
        /// 任务停止执行回调处理
        /// </summary>
        /// <param name="bManual">是否手动停止</param>
        /// <param name="task">停止的任务</param>
        public void taskFinishHandler(bool bManual, TaskBase task)
        {
            //Utils.LogSys.Log("Task complete: " + task._taskName);
            if (_listRuningTasks.Contains(task))
            {
                _listRuningTasks.Remove(task);
            }

            if (_listWaitingTasks.Count > 0)
            {
                TaskBase t = _listWaitingTasks[0];
                _listWaitingTasks.RemoveAt(0);

                //添加到运行列表
                _listRuningTasks.Add(t);
                StartCoroutine(t.coroutineWrapper());
            }
        }
Esempio n. 2
0
        ///////////////////////////////////////////////////////////////////////////


        /// <summary>
        /// 开始任务
        /// </summary>
        /// <param name="task">任务对象</param>
        public void startTask(TaskBase task)
        {
            if (task == null)
            {
                return;
            }

            task.EventFinished += taskFinishHandler;

            if (_listRuningTasks.Count < MAX_CONCURRENCY_TASK)
            {
                _listRuningTasks.Add(task);
                StartCoroutine(task.coroutineWrapper());
            }
            else
            {
                _listWaitingTasks.Add(task);
            }
//                      for (int i=0; i<_listRuningTasks.Count; i++)
//                              Utils.LogSys.Log ("------------>Runing Task:"+_listRuningTasks[i]._taskName);
        }