
30.04.2010, 03:40
|
|
Участник форума
Регистрация: 09.05.2009
Сообщений: 186
С нами:
8951426
Репутация:
102
|
|
пишу код на коленке, думаю разберёшся сам
Код:
p = class(tthread)
private
//переменные
proxy:striing;
otver:tstringlist;
procedure getprx;
procedure checkprx;
protected
procedure execute; override;
end;
var
form1..
p1,p2,p3,p4,p5,p6,p7:tthread;
i:integer;
pr:bool;
//процедура чека проксей
procedure p.checkprx;
begin
otver:=tstringlist.create;
// тут подставляешь прокси в инди(или что там у тебя). прокси - переменная proxy
try
otver.text:=http.get(somesite);
if length(otver)<>0 then // наверное можно только except юзать
прокси валидный
else
прокси не валидный
except
прокси не валидный
end;
end;
//создаёшь процедуру, которая будет выдавать каждому потоку проксю
procedure p.getprx;
begin
//чтото типо того
proxy:= form1.memo1.lines[i];
i:=i+1;
if i=form1.memo1.lines.count // если прокся последняя - завершать проверку
then pr:=false;
end;
procedure p.execute;
begin
//тутсоздаёшь все компоненты инди, или что там у тебя
Synchronize(getprx); //берёш проксю
repeat
checkprx; //чекаешь
until pr=false;
end;
procedure tform1.button1click(sender: tobject);
begin
pr:=true;
i:=0;
p1 := tnew.create(true);
p1.freeonterminate := true;
p1.priority := tpnormal;
p1.resume;
p2 := tnew.create(true);
p2.freeonterminate := true;
p2.priority := tpnormal;
p2.resume;
// и так до p7
end;
|
|
|