Суть проблемы такова:
Я пишу плагин для чата, нужно пропинговать определённые адреса и проверить на открытость порта, затем вывести всё в определённый канал, но это всё фигня. Пингую адреса и получается так что весь сервер подвисает в то время пока идёт проверка адресов. Понял что это происходит в этом коде:
Код:
procedure TForm1.DCPing();
var
i:integer;
s,app:string;
begin
App := ExtractFilePath( ParamStr(0));
memo1.Lines.LoadFromFile(app+option+'Privetstvie.txt');
begin
for I:=0 to Listbox1.Count-1 do
begin
s:=listbox1.items[i];
try
IdTCPClient1.Host:=s;
IdTCPClient1.Port:=411;
IdTCPClient1.Connect;
if IdTCPClient1.Connected
then
//подключились
Memo1.Lines.Add('* '+s+' '+'online');
IdTCPClient1.Disconnect;
except
//не подключились
Memo1.Lines.add('* '+s+' '+'offline');
end;
end;
end;
И так вопрос таков, как можно сделать так что бы этот код не так сильно грузил программу? Или подскажите пожалуйста другой способ проверить адрес и узнать открыт ли порт.