private void _InitNextJobUI(CswPrintJobServiceThread.NextJobEventArgs e) { if (e.Succeeded) { string errMsg = string.Empty; string statusInfo = "Job#" + e.Job.JobNo + " for " + e.Job.JobOwner + " " + e.Job.LabelCount.ToString() + " of " + e.Job.LabelName; bool success = NbtPrintUtil.PrintLabel(e.printer.PrinterName, e.Job.LabelData, ref statusInfo, ref errMsg); if (e.Job.LabelCount > 0) { _svcThread.updateJob(e.auth, e.Job.JobKey, success, errMsg); } if (e.Job.RemainingJobCount > 0) { timerInterval = 1000; //more jobs, fire soon } else { timerInterval = 10000; //no jobs, use std polling interval of 10 sec } } else { Log(e.Message); } timerEnabled = true; } // _InitNextJobUI()
private void _InitNextJobUI(CswPrintJobServiceThread.NextJobEventArgs e) { if (e.Succeeded) { string errMsg = string.Empty; string statusInfo = "Job#" + e.Job.JobNo + " for " + e.Job.JobOwner + " " + e.Job.LabelCount.ToString() + " of " + e.Job.LabelName; if (e.Job.LabelCount < 1) { statusInfo = "No label jobs to print at " + DateTime.Now.ToString(); lblStatus.Text = statusInfo; Update(); } else { bool success = NbtPrintUtil.PrintLabel(e.printer.PrinterName, e.Job.LabelData, ref statusInfo, ref errMsg); if (success) { lblStatus.Text = statusInfo; } else { Log(errMsg); } if (e.Job.LabelCount > 0) { CswPrintJobServiceThread.UpdateJobInvoker lblInvoke = new CswPrintJobServiceThread.UpdateJobInvoker(_svcThread.updateJob); lblInvoke.BeginInvoke(_getAuth(), e.Job.JobKey, success, errMsg, null, null); } if (e.Job.RemainingJobCount > 0) { timer1.Interval = 500; //more jobs, fire soon } else { timer1.Interval = 10000; //no jobs, use std polling interval of 10 sec } } } else { Log(e.Message); timer1.Stop(); } //find this printer and clear its working flag for (int i = 0; i < config.printers.Count; ++i) { if (config.printers[i].PrinterKey == e.printer.PrinterKey) { config.printers[i].working = false; i = config.printers.Count + 1; } } } // _InitNextJobUI()
//must not touch UI components directly! /* * void _ServiceThread_Register( ServiceThread.RegisterEventArgs e ) * { * this.BeginInvoke( new InitRegisterHandler( _InitRegisterUI ), new object[] { e } ); * } */ void _ServiceThread_NextJob(CswPrintJobServiceThread.NextJobEventArgs e) { this.BeginInvoke(new InitNextJobHandler(_InitNextJobUI), new object[] { e }); }