internal void StartTask(cGatherTask task) { if (task.TaskState ==cGlobalParas.TaskState.UnStart || task.TaskState == cGlobalParas.TaskState.Stopped || task.TaskState == cGlobalParas.TaskState.Failed || task.TaskState == cGlobalParas.TaskState.Aborted) { if (m_MaxTask <= 0 || m_RunningTaskList.Count < m_MaxTask) { task.Start(); } else { task.ReadyToStart(); } } }
internal void StopTask(cGatherTask task) { if (task.TaskState == cGlobalParas.TaskState.Started || task.TaskState == cGlobalParas.TaskState.Waiting) { task.Stop(); } }
/// �Ƴ�����ȡ������ internal void RemoveTask(cGatherTask task) { // ȡ������ ɾ���б��е��������� if (task.State == cGlobalParas.TaskState.Running || task.State ==cGlobalParas.TaskState.Started ) { task.Abort(); } task.Remove(); task.State = cGlobalParas.TaskState.Aborted; AutoList(task); }
internal void ReStartTask(cGatherTask task) { task.ResetTaskData(); StartTask(task); }
//���ݲɼ������״̬�Զ�ά���ɼ������еIJɼ��������� //��ǰ��Ϊ����ɼ�����(����/ʧ��/�ȴ�/���)���ȴ������е� //�����ϵ����ԣ����Զ�ִ�� internal void AutoList(cGatherTask task) { // ����״̬����¼��������̶߳��д������˴���Ҫͬ�� lock (m_listLock) { switch (task.TaskState) { case cGlobalParas.TaskState.Aborted: m_RunningTaskList.Remove(task); m_StoppedTaskList.Remove(task); m_CompletedTaskList.Remove(task); m_WaitingTaskList.Remove(task); break; case cGlobalParas.TaskState.Started: if (!m_RunningTaskList.Contains(task)) { m_RunningTaskList.Add(task); } m_StoppedTaskList.Remove(task); m_CompletedTaskList.Remove(task); m_WaitingTaskList.Remove(task); break; case cGlobalParas.TaskState.Completed: //������ɺ�ֱ�ӽ������ݵ���,������������ɶ��� //�������������,������ֱ����taskcompleted�б� //��������������Ŀ���. if (!m_CompletedTaskList.Contains(task)) { m_CompletedTaskList.Add(task); } m_RunningTaskList.Remove(task); break; case cGlobalParas.TaskState.UnStart: if (!m_StoppedTaskList.Contains(task)) { m_StoppedTaskList.Add(task); } m_WaitingTaskList.Remove (task ); m_CompletedTaskList.Remove(task); m_RunningTaskList.Remove(task); break; case cGlobalParas.TaskState.Waiting : if (!m_WaitingTaskList.Contains(task)) { m_WaitingTaskList.Add(task); } m_StoppedTaskList.Remove(task); m_CompletedTaskList.Remove(task); m_RunningTaskList.Remove(task); break; default: if (!m_StoppedTaskList.Contains(task)) { m_StoppedTaskList.Add(task); } m_WaitingTaskList.Remove(task); m_RunningTaskList.Remove(task); break; } } }
/// <summary> /// �������� /// </summary> /// <param name="task"></param> internal void FinishTask(cGatherTask task) { m_FinishTaskQueue.Enqueue(task); }
private void TaskInit(cGatherTask gTask) { if (gTask.TaskManage.Equals(this)) { if (!gTask.IsInitialized) { gTask.TaskCompleted += this.onTaskCompleted; gTask.TaskFailed += this.onTaskFailed; gTask.TaskStopped += this.onTaskStopped; gTask.TaskStarted += this.onTaskStarted; gTask.TaskAborted += this.onTaskAborted; gTask.Log += this.onLog; gTask.GData += this.onGData; gTask.TaskError += this.onTaskError; gTask.TaskStateChanged += this.onTaskStateChanged; gTask.TaskThreadInitialized += this.onTaskThreadInitialized; gTask.RunTask += this.onRunSoukeyTask; gTask.IsInitialized = true; } } }
//ǿ�ƽ���ij������ internal void Abort(cGatherTask task) { task.Abort(); }
/// ��ɼ��������������һ���ɼ����� public void Add(cTaskData tData) { try { //�½�һ���ɼ�����,���Ѳɼ���������ݴ���˲ɼ������� cGatherTask gTask = new cGatherTask(this, tData); //��ʼ���˲ɼ�����,��Ҫ��ע������������¼� TaskInit(gTask); //�жϴ������Ƿ��Ѿ�������������ݼ���,���û�м���,����뼯�� if (!m_TaskDataList.TaskDataList.Contains(tData)) { m_TaskDataList.TaskDataList.Add(tData); } //���˲ɼ�������ӵ��ɼ���������� m_list_Task.Add(gTask); //������ӵ�����״̬,�Զ�ά�����е���Ϣ m_GatherTaskList.AutoList(gTask); //����������Ӻ������ɵ���������Ҫ������ɵ� //�¼� if (gTask.TaskState == cGlobalParas.TaskState.Completed) { e_TaskCompleted(gTask, new cTaskEventArgs(gTask.TaskID, gTask.TaskName, false)); } } catch (System.Exception ex) { throw ex; } }
//����ǿ����ֹ�������¼������������䷵���κ���Ϣ public void TaskEventDispose(cGatherTask gTask) { if (gTask.TaskManage.Equals(this)) { gTask.TaskCompleted -= this.onTaskCompleted; gTask.TaskFailed -= this.onTaskFailed; gTask.TaskStopped -= this.onTaskStopped; gTask.TaskStarted -= this.onTaskStarted; gTask.TaskAborted -= this.onTaskAborted; gTask.Log -= this.onLog; gTask.GData -= this.onGData; gTask.TaskError -= this.onTaskError; gTask.TaskStateChanged -= this.onTaskStateChanged; gTask.RunTask -= this.onRunSoukeyTask; gTask.TaskThreadInitialized -= this.onTaskThreadInitialized; } }
public void Abort(cGatherTask task) { m_TaskManage.TaskListControl.Abort(task); m_TaskManage.TaskListControl.AutoList(task); }
/// ָֹͣ���IJɼ����� public void Stop(cGatherTask task) { m_TaskManage.TaskListControl.StopTask(task); }
/// ��ʼָ���IJɼ����� public void Start(cGatherTask task) { if (!m_IsInitialized) { timerInit(); } m_TaskManage.TaskListControl.StartTask(task); }
/// ���¿�ʼָ���IJɼ����� public void ReStart(cGatherTask task) { m_TaskManage.TaskListControl.ReStartTask(task); }
/// ɾ��ָ���IJɼ����� public void Remove(cGatherTask task) { m_TaskManage.TaskListControl.RemoveTask(task); }