/// <summary> /// 事件处理函数,需要使用委托 /// </summary> /// <param name="e"></param> void EventProcess(Object e) { if (e.GetType() == typeof(WebScanResultEventArgs)) { cnt++; if (last == DateTime.MinValue) { last = DateTime.Now; } else { TimeSpan ts = DateTime.Now - last; if (ts.TotalSeconds >= 1.0) { last = DateTime.Now; lock (lssLblSpeed) { lssLblSpeed.Text = string.Format("每秒{0}个页面", cnt); } cnt = 0; } } WebScanResultEventArgs arg = (WebScanResultEventArgs)e; lock (tssLblFile) { tssLblFile.Text = arg.URL; } if ( arg.StatusCode == HttpStatusCode.OK || arg.StatusCode == HttpStatusCode.Forbidden || arg.StatusCode == HttpStatusCode.Redirect ) { lock (lvResult) { //lvResult.BeginUpdate(); ListViewItem lvi = new ListViewItem(arg.StatusCode.ToString()); lvi.SubItems.Add(arg.URL); lvResult.Items.Add(lvi); //lvResult.EndUpdate(); } } lock (tsProssBar) { tsProssBar.Maximum = arg.TotalLines; tsProssBar.Value = arg.CurrentLineNum; } } else if (e.GetType() == typeof(EventArgs)) { MessageBox.Show("扫描结束,请检查结果!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Information); clbDicts.Enabled = true; txtUrl.Enabled = true; btnScan.Text = "Scan"; btnScan.Enabled = true; } }
/// <summary> /// 扫描结果 /// </summary> /// <param name="sender"></param> /// <param name="e"></param> void webScan_OnScanResult(object sender, WebScanResultEventArgs e) { this.Invoke(new DelegEventProcess(this.EventProcess), e); }