
23.04.2010, 14:30
|
|
Участник форума
Регистрация: 09.05.2009
Сообщений: 186
С нами:
8951426
Репутация:
102
|
|
потоки и indy [delphi]
допустим есть код:
Код:
procedure tnew.getln;
var
t:tstringlist;
i:integer;
begin
for i:=0 to form1.memo1.lines.count-1 do
begin
t:=stringlist.create;
t.text:=form1.idhttp1.get(form1.memo1.lines[i]);
form1.memo2.lines.add(t.text);
end;
end;
как сделать, чтобы, скажем, потоков 20 паралельно его выполняли?
пытался примерно вот так:
Код:
tnew = class(tthread)
private
procedure getln;
protected
procedure execute; override;
end;
var
form1: tform1;
new1, new2: tnew;
i:integer;
procedure tform1.button1click(sender: tobject);
begin
new1 := tnew.create(true);
new1.freeonterminate := true;
new1.s := '1 thread';
new1.priority := tpnormal;
new2 := tnew.create(true);
new2.freeonterminate := true;
new2.s := '2 thread';
new2.priority := tpnormal;
new1.resume;
new2.resume;
end;
procedure tnew.getln;
var
t:tstringlist;
i:integer;
begin
for i:=0 to form1.memo1.lines.count-1 do
begin
t:=stringlist.create;
t.text:=form1.idhttp1.get(form1.memo1.lines[i]);
form1.memo2.lines.add(t.text);
end;
end;
procedure tnew.execute;
begin
getln;
end;
но idhttp1 вылетает с ошибкой или виснет (непомню точно, влом делфи включать) 
краем уха слышал про idthreadcomponent, но адекватных примеров его использования я не нашел..
помогите!!!!11
|
|
|