private void RefreshSchedule() { var info = CrawlerManager.CrawlerFactory.Info; SJobCntLbl.Text = info.JobCount.ToString(); SCrawlCntLbl.Text = info.ItemCount.ToString(); SErrorCntLbl.Text = info.ErrorCount.ToString(); SStartTimeLbl.Text = info.StartTime.ToString(); if (CrawlerManager.CrawlerFactory.Trigger_SchedulerInfoChange == null) { CrawlerManager.CrawlerFactory.Trigger_SchedulerInfoChange = new Scheduler.del_MsgSender( msg => { IPipeMessage message = new IPipeMessage(); message.Message = msg; message.GenerateTime = DateTime.Now; lock (_scheduleSync) { _currentScheduleMessage.Add(message); if (_currentScheduleMessage.Count > 20) { _currentScheduleMessage.RemoveAt(0); } } }); } var selStart = SContentTxt.SelectionStart; var selLength = SContentTxt.SelectionLength; var point = SContentTxt.AutoScrollOffset; SContentTxt.Text = ""; string[] result; lock (_scheduleSync) { result = (from item in _currentScheduleMessage select string.Format("[{1}]{0}", item.Message, item.GenerateTime.ToString("HH:mm"))).Reverse().ToArray(); } SContentTxt.Lines = result; try { SContentTxt.SelectionStart = selStart; SContentTxt.SelectionLength = selLength; SContentTxt.AutoScrollOffset = point; } catch { } }
private void RefreshMessage() { var pipeLines = CrawlerManager.CrawlerFactory.Pipelines; foreach (var item in pipeLines) { if (!_pipelineDic.ContainsKey(item.Info.Name)) { _pipelineDic[item.Info.Name] = new List <IPipeMessage>(); } if (item.Info.Trigger_PipelineInfoChange == null) { IPipeline item1 = item; item.Info.Trigger_PipelineInfoChange = new Scheduler.del_MsgSender(msg => { var messageList = _pipelineDic[item1.Info.Name]; IPipeMessage message = new IPipeMessage(); message.Message = msg; message.GenerateTime = DateTime.Now; lock (sync) { messageList.Add(message); } if (messageList.Count > 20) { lock (sync) { messageList.RemoveAt(0); } } }); } } }