Пример #1
0
        /// <summary>
        /// 任务开始运行
        /// </summary>
        /// <param name="task">任务基类</param>
        public void Start(TaskBase task)
        {
            if (task == null)
            {
                return;                                    //如果任务为空则返回
            }
            if (!CheckTaskRunState(TaskRunState.Starting)) //是否可以进入启动状态
            {
                Logger.Error("无法启动,当前任务“{0}”状态:{1}".FormatWith(_task.Name, TaskRunState.ToString()));
                return;
            }

            _task         = task; //否则当前任务等于task
            _taskEventArg = new TaskEventArg {
                Context = task.Context
            };
            Window = task.Context.Role.Window; //当前窗口等于当前角色所在窗口

            if (_workThread == null)           //没有在执行任务,则获取任务线程
            {
                _workThread = GetWorkThread(); //获取任务线程
            }
            Logger.Debug(string.Format("任务“{0}”正在启动...", _task.Name));

            TaskRunState = TaskRunState.Starting;  //任务状态改为正在启动
            DoEventHandler(OnStateChanged, _taskEventArg);
            DoEventHandler(OnStarting, _taskEventArg);
            _workThread.Start();                  //线程启动
        }
Пример #2
0
 protected void DoEventHandler(TaskEventHandler handler, TaskEventArg e)
 {
     if (handler != null)
     {
         handler.Invoke(this, e);
         //hander.BeginInvoke(this);多线程
     }
 }
Пример #3
0
 protected void DoEventHandler(TaskEventHandler handler, TaskEventArg e)
 {
     if (handler != null)
     {
         handler.Invoke(this, e);
         //hander.BeginInvoke(this);多线程
     }
 }
Пример #4
0
        /// <summary>
        /// 任务开始运行
        /// </summary>
        /// <param name="task">任务基类</param>
        public void Start(TaskBase task)
        {
            if (task == null)
                return;           //如果任务为空则返回

            if (!CheckTaskRunState(TaskRunState.Starting)) //是否可以进入启动状态
            {
                Logger.Error("无法启动,当前任务“{0}”状态:{1}".FormatWith(_task.Name,TaskRunState.ToString()));
                return;
            }

            _task = task;         //否则当前任务等于task
            _taskEventArg = new TaskEventArg{ Context=task.Context};
            Window = task.Context.Role.Window;  //当前窗口等于当前角色所在窗口

            if (_workThread == null)           //没有在执行任务,则获取任务线程
            {
                _workThread = GetWorkThread(); //获取任务线程
            }
            Logger.Debug(string.Format("任务“{0}”正在启动...",_task.Name));

            TaskRunState = TaskRunState.Starting;  //任务状态改为正在启动
            DoEventHandler(OnStateChanged,_taskEventArg);
            DoEventHandler(OnStarting,_taskEventArg);
            _workThread.Start();                  //线程启动
        }