Всем привет, у меня возникла очередная проблема, которую я не могу решить))) Помогите пожалуйста.
Есть чекер прокси серверов:
Код:
function getnumberproxy:integer;
begin
if ind<>form1.ListBox2.Items.Count then
inc(ind);
result:=ind;
end;
procedure TMyTr.Execute;
var
s,resp,ip,port:string;
cw,i,CurAcc:integer;
begin
while wo do
begin
CrS.Enter;
Inc(Acf);
if Acf<form1.ListBox2.Items.Count then CurAcc:=Acf else Wo:=false;
CrS.Leave;
if Wo then
begin
http:=TIdHTTP.Create(nil);
cw:=getnumberproxy;
while cw<form1.ListBox2.Items.Count do
begin
s:=form1.ListBox2.Items[cw];
i := Pos(':',s);
IP := Copy(s,1,i-1);
PORT := Copy(s,i+1,Length(s));
try
http.ProxyParams.ProxyServer:=ip;
http.ProxyParams.ProxyPort:=StrToInt(port);
http.ReadTimeout:=Form1.SpinEdit2.Value*1000;
resp:=http.Get('http://ya.ru/');
if pos('ya.ru',resp)<>0 then
form1.ListBox1.Items.Add(ip+':'+port);
except
end;
cw:=getnumberproxy;
checked:=checked+1;
end;
http.Free;
end;
end;
end;
procedure TForm1.Button3Click(Sender: TObject);
var i:integer;
begin
ind:=-1;
acf:=-1;
wo:=true;
for i:=1 to spinedit1.Value do
begin
thr[i]:=TMyTr.Create;
thr[i].Pause(1);
thr[i].Resume;
end;
Form1.StatusBar2.Panels[0].Text:='Чекер прокси-серверов запущен';
end;
procedure TForm1.Timer1Timer(Sender: TObject);
begin
form1.label6.caption:=IntToStr(Form1.ListBox2.Items.Count);
Form1.Label5.Caption:=IntToStr(form1.ListBox1.Items.Count);
Form1.Label7.Caption:=IntToStr(checked);
end;
(не помню где взял код, то ли сам написал ( с частичной помощью интернета), то ли нашел где-то. Поэтому исходник не скрываю) В общем суть не в этом. Код для меня полностью понятен (это к слову).
Мне нужно:
После того, как я прочекал все сервера, валидный прокс собрать в TStringList. А потом вставить их в многопоточность.
Как мы знаем в многопоточности существуют крит. секции. Дак вот мне надо, чтобы каждая прокси работала в своей секции. (не знаю как правильно передать мысль)
Допустим:
ставим 2 потока.1-ым потоком: программа заходит на сайт с 1-го прокси сервера.
2-ым потоком: со 2-го прокси сервера.
Принимаются пожертвования любых размеров в фонд поддержки начинающих программистов Для просмотра ссылок или изображений в подписях, у Вас должно быть не менее 10 сообщение(ий). Сейчас у Вас 0 сообщение(ий).
Он имеет ввиду, как вытаскивать прокси из списка и вставлять в поток, чтобы не повторялись взятые прокси в потоках. Тоже где-то читал, с крит. секциями связано.
Он имеет ввиду, как вытаскивать прокси из списка и вставлять в поток, чтобы не повторялись взятые прокси в потоках. Тоже где-то читал, с крит. секциями связано.
записал валидный прокси в список и подсунул его потоку, сложности 0.
________________
Для просмотра ссылок или изображений в подписях, у Вас должно быть не менее 10 сообщение(ий). Сейчас у Вас 0 сообщение(ий).
Для просмотра ссылок или изображений в подписях, у Вас должно быть не менее 10 сообщение(ий). Сейчас у Вас 0 сообщение(ий).
Для просмотра ссылок или изображений в подписях, у Вас должно быть не менее 10 сообщение(ий). Сейчас у Вас 0 сообщение(ий).
R.A.Z.O.R., для этого совершенно не нужны критические секции.
________________
Принимаются пожертвования любых размеров в фонд поддержки начинающих программистов Для просмотра ссылок или изображений в подписях, у Вас должно быть не менее 10 сообщение(ий). Сейчас у Вас 0 сообщение(ий).