/// <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()); } }
/////////////////////////////////////////////////////////////////////////// /// <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); }