private void RunScan(string Address) { FileRenderClass FileRender = new FileRenderClass(BLFilename); this.BLS = FileRender.LoadBLS(); // Загружаем список серверов countServers = this.BLS.Length; for (int i = 0; i < countServers; i++) { VerifyAddressClass IP = new VerifyAddressClass(Address, this.BLS[i].Trim()); if (IP.isInit != false && IP.IPAddr.Valid && this.StopBtnStat == false) { ListViewItem NewIp = new ListViewItem(IP.IPAddr.AsString); // Формируем готовый список проверенных данных string Listed; if (IP.BlackList.IsListed) { Listed = "Warning"; NewIp.ForeColor = Color.Red; NewIp.SubItems.Add(Listed); NewIp.SubItems.Add(IP.BlackList.VerifiedOnServer); this.bads++; } else { Listed = "OK"; NewIp.ForeColor = Color.Green; NewIp.SubItems.Add(Listed); NewIp.SubItems.Add(IP.BlackList.VerifiedOnServer); this.goods++; } FileRenderClass SFileRender = new FileRenderClass(Address + "_" + RFilename); SFileRender.SaveResult(RFileFolder, new string[] { IP.IPAddr.AsString + " - " + Listed + " - " + IP.BlackList.VerifiedOnServer }, true); // Отправляем делегату информацию о результатов сканирования if (InvokeRequired) { Invoke( InfoUpdater, NewIp, countServers * 100, i * 100, "Всего: " + Convert.ToString(this.bads + this.goods), "В черном списке: " + Convert.ToString(this.bads), "Нейтральные: " + Convert.ToString(this.goods) ); } Application.DoEvents(); } else { break; } } // Маркуем конечные строки FileRenderClass RFileRender = new FileRenderClass(Address + "_" + RFilename); RFileRender.SaveResult(RFileFolder, new string[] { Environment.NewLine, bads + "/" + goods + "/" + (goods + bads), "DONE!", }, true); if (InvokeRequired) { Invoke(InfoReset); } }