public void StopScanTask() { taskStatus = TaskStatus.Stop; if (thread != null) { while (thread.IsAlive) { Thread.Sleep(300); } thread = null; if (OnTaskStatusChanged != null) { OnTaskStatusChanged.Invoke(null, new EventArgs()); } monitorLog = MonitorLog.NewMonitorLog(); monitorLog.LOGNAME = "线程操作"; monitorLog.LOGINFO = "补货线程停止!"; monitorLog.LOGLOCATION = "线程"; monitorLog.LOGTYPE = 0; monitorLog.Save(); Configuration config = ConfigurationManager.OpenExeConfiguration(ConfigurationUserLevel.None); config.AppSettings.Settings["IsStart"].Value = false.ToString(); config.Save(ConfigurationSaveMode.Modified); ConfigurationManager.RefreshSection("appSettings"); } OnOnTaskStopFinished(); }
public void NotifyTaskStatusChange(QuestTask task) { OnTaskStatusChanged?.Invoke(this, task); if (task.Status == Status.Completed) { QuestManager.Notifications.taskCompleted.Show(task.Description); var next = tasks.FirstOrDefault(x => x.Status == Status.Inactive); if (next != null) { next.Activate(); } } if (task.Status == Status.Failed) { QuestManager.Notifications.taskFailed.Show(task.Description); if (!task.Optional) { task.owner.Status = Status.Failed; } else { var next = tasks.FirstOrDefault(x => x.Status == Status.Inactive); if (next != null) { next.Activate(); } } } if (AutoComplete && CanComplete()) { Complete(); } }
private void NotifyTaskStatusChanged(Quest quest, QuestTask task) { OnTaskStatusChanged?.Invoke(quest, task); if (QuestManager.SavingLoading.autoSave) { QuestManager.Save(); } }
public void StartScanTask() { taskStatus = TaskStatus.Run; if (Issuedthread == null) { Issuedthread = new Thread(ScanTask); Issuedthread.IsBackground = true; Issuedthread.Name = "IssuedthreadTask"; Issuedthread.Start(); monitorLog = MonitorLog.NewMonitorLog(); monitorLog.LOGNAME = "线程操作"; monitorLog.LOGINFO = "分拣任务下达线程开始!"; monitorLog.LOGLOCATION = "线程"; monitorLog.LOGTYPE = 0; monitorLog.Save(); } if (Arrivedthread == null) { Arrivedthread = new Thread(FinishTask); Arrivedthread.IsBackground = true; Arrivedthread.Name = "ArrivedthreadTask"; Arrivedthread.Start(); monitorLog = MonitorLog.NewMonitorLog(); monitorLog.LOGNAME = "线程操作"; monitorLog.LOGINFO = "分拣任务到达线程开始!"; monitorLog.LOGLOCATION = "线程"; monitorLog.LOGTYPE = 0; monitorLog.Save(); } else { monitorLog = MonitorLog.NewMonitorLog(); monitorLog.LOGNAME = "线程操作"; monitorLog.LOGINFO = "分拣任务到达线程正在运行!"; monitorLog.LOGLOCATION = "线程"; monitorLog.LOGTYPE = 0; monitorLog.Save(); } if (OnTaskStatusChanged != null) { OnTaskStatusChanged.Invoke(null, new EventArgs()); } Configuration config = ConfigurationManager.OpenExeConfiguration(ConfigurationUserLevel.None); config.AppSettings.Settings["IsStart"].Value = true.ToString(); config.Save(ConfigurationSaveMode.Modified); ConfigurationManager.RefreshSection("appSettings"); }
public void StartScanTask() { //设置任务开始状态 taskStatus = TaskStatus.Run; if (thread == null) { thread = new Thread(ScanTask); thread.IsBackground = true; thread.Name = "PLCBHTask"; thread.Start(); if (OnTaskStatusChanged != null) { OnTaskStatusChanged.Invoke(null, new EventArgs()); } monitorLog = MonitorLog.NewMonitorLog(); monitorLog.LOGNAME = "线程操作"; monitorLog.LOGINFO = "补货线程开始!"; monitorLog.LOGLOCATION = "线程"; monitorLog.LOGTYPE = 0; monitorLog.Save(); } //else if (taskStatus == TaskStatus.Stop) //{ // thread.Start(); // taskStatus = TaskStatus.Run; // if (OnTaskStatusChanged != null) // { // OnTaskStatusChanged.Invoke(null, new EventArgs()); // } // monitorLog = MonitorLog.NewMonitorLog(); // monitorLog.LOGNAME = "线程操作"; // monitorLog.LOGINFO = "补货线程开始!"; // monitorLog.LOGLOCATION = "线程"; // monitorLog.LOGTYPE = 0; // monitorLog.Save(); //} //else if (taskStatus == TaskStatus.Suspend) //{ // thread.Resume(); // taskStatus = TaskStatus.Run; // if (OnTaskStatusChanged != null) // { // OnTaskStatusChanged.Invoke(null, new EventArgs()); // } // monitorLog = MonitorLog.NewMonitorLog(); // monitorLog.LOGNAME = "线程操作"; // monitorLog.LOGINFO = "补货线程恢复!"; // monitorLog.LOGLOCATION = "线程"; // monitorLog.LOGTYPE = 0; // monitorLog.Save(); //} }
public void StopScanTask() { //只暂停下达任务,不暂停到达任务 //分拣线需要到达任务将皮带上的烟分拣完 taskStatus = TaskStatus.Stop; if (Issuedthread != null) { while (Issuedthread.IsAlive) { Thread.Sleep(300); } Issuedthread = null; monitorLog = MonitorLog.NewMonitorLog(); monitorLog.LOGNAME = "线程操作"; monitorLog.LOGINFO = "分拣任务下达线程停止!"; monitorLog.LOGLOCATION = "线程"; monitorLog.LOGTYPE = 0; monitorLog.Save(); //while (Arrivedthread.IsAlive) //{ // Thread.Sleep(300); //} //Arrivedthread = null; //monitorLog = MonitorLog.NewMonitorLog(); //monitorLog.LOGNAME = "线程操作"; //monitorLog.LOGINFO = "分拣任务到达线程停止!"; //monitorLog.LOGLOCATION = "线程"; //monitorLog.LOGTYPE = 0; //monitorLog.Save(); if (OnTaskStatusChanged != null) { OnTaskStatusChanged.Invoke(null, new EventArgs()); } Configuration config = ConfigurationManager.OpenExeConfiguration(ConfigurationUserLevel.None); config.AppSettings.Settings["IsStart"].Value = false.ToString(); config.Save(ConfigurationSaveMode.Modified); ConfigurationManager.RefreshSection("appSettings"); } OnOnTaskStopFinished(); }
public void SuspendScanTask() { if (thread != null) { thread.Suspend(); taskStatus = TaskStatus.Suspend; if (OnTaskStatusChanged != null) { OnTaskStatusChanged.Invoke(null, new EventArgs()); } monitorLog = MonitorLog.NewMonitorLog(); monitorLog.LOGNAME = "线程操作"; monitorLog.LOGINFO = "补货线程暂停!"; monitorLog.LOGLOCATION = "线程"; monitorLog.LOGTYPE = 0; monitorLog.Save(); } }