void OnWorkStatusChange(IJFWork worker, JFWorkStatus status, string info) { if (InvokeRequired) { BeginInvoke(new dgWorkStatusChange(OnWorkStatusChange), new object[] { worker, status, info }); //Invoke(new dgWorkStatusChange(OnWorkStatusChange), new object[] { worker, status, info }); return; } lbWorkStatus.Text = status.ToString(); ShowTips(string.Format("Worker: \"{0}\" 工作状态变化: \"{1}\" info:{2}", worker.Name, status.ToString(), info)); }
//响应工作状态改变消息,由MainStation发过来 public void OnWorkStatusChanged(JFWorkStatus ws) { BeginInvoke(new Action(() => { switch (ws) { case JFWorkStatus.UnStart: // = 0, //线程未开始运行 _workStatusTxt = "未开始"; lbRunStatus.ForeColor = Color.Black; lbRunStatus.Text = _workStatusTxt; break; case JFWorkStatus.Running: //, //线程正在运行,未退出 _workStatusTxt = "运行中"; lbRunStatus.ForeColor = Color.Green; lbRunStatus.Text = _workStatusTxt + " " + _currCustomStatus; break; case JFWorkStatus.Pausing: //, //线程暂停中 _workStatusTxt = "已暂停"; lbRunStatus.ForeColor = Color.Yellow; lbRunStatus.Text = _workStatusTxt + " " + _currCustomStatus; return; case JFWorkStatus.Interactiving: //, //人机交互 , 等待人工干预指令 _workStatusTxt = "等待输入"; lbRunStatus.ForeColor = Color.Yellow; lbRunStatus.Text = _workStatusTxt + " " + _currCustomStatus; break; case JFWorkStatus.NormalEnd: //, //线程正常完成后退出 _workStatusTxt = "正常结束"; lbRunStatus.ForeColor = Color.Black; lbRunStatus.Text = _workStatusTxt; break; case JFWorkStatus.CommandExit: //, //收到退出指令 _workStatusTxt = "指令结束"; lbRunStatus.ForeColor = Color.Black; lbRunStatus.Text = _workStatusTxt; break; case JFWorkStatus.ErrorExit: //, //发生错误退出,(重启或人工消除错误后可恢复) _workStatusTxt = "错误停止"; lbRunStatus.ForeColor = Color.Red; lbRunStatus.Text = _workStatusTxt + " " + _currCustomStatus; break; case JFWorkStatus.ExceptionExit: //, //发生异常退出 , (不可恢复的错误) _workStatusTxt = "异常停止"; lbRunStatus.ForeColor = Color.Red; lbRunStatus.Text = _workStatusTxt + " " + _currCustomStatus; break; case JFWorkStatus.AbortExit: //, //由调用者强制退出 _workStatusTxt = "强制退出"; lbRunStatus.ForeColor = Color.Red; lbRunStatus.Text = _workStatusTxt + " " + _currCustomStatus; break; default: _workStatusTxt = ws.ToString(); lbRunStatus.ForeColor = Color.Red; lbRunStatus.Text = _workStatusTxt + " " + _currCustomStatus; break; } fmTips.AddOneTips("运行状态改变为:" + _workStatusTxt); return; })); }
/// <summary> /// /// </summary> /// <param name="currWorkStatus"></param> public void OnWorkStatusChanged(object station, JFWorkStatus currWorkStatus) { if (!Created) { return; } if (InvokeRequired) { Invoke(new dgWorkStatusChanged(OnWorkStatusChanged), new object[] { station, currWorkStatus }); return; } string wsName = ""; switch (currWorkStatus) { case JFWorkStatus.UnStart: // = 0, //线程未开始运行 wsName = "未开始"; break; case JFWorkStatus.Running: //, //线程正在运行,未退出 wsName = "运行中"; break; case JFWorkStatus.Pausing: //, //线程暂停中 wsName = "已暂停"; break; case JFWorkStatus.Interactiving: //, //人机交互 , 等待人工干预指令 wsName = "人工干预"; break; case JFWorkStatus.NormalEnd: // //线程正常完成后退出 wsName = "正常结束"; break; case JFWorkStatus.CommandExit: //, //收到退出指令 wsName = "指令结束"; break; case JFWorkStatus.ErrorExit: //, //发生错误退出,(重启或人工消除错误后可恢复) wsName = "错误退出"; break; case JFWorkStatus.ExceptionExit: //, //发生异常退出 , (不可恢复的错误) wsName = "异常退出"; break; case JFWorkStatus.AbortExit: //, //由调用者强制退出 wsName = "强制终止"; break; default: wsName = currWorkStatus.ToString(); break; } if (_stationUI is IJFStationMsgReceiver) { (_stationUI as IJFStationMsgReceiver).OnWorkStatusChanged(currWorkStatus); } toolStripTextBoxWorkStatus.Text = "运行状态:" + wsName; ShowTips("运行状态:" + wsName); }