Цитата:
Сообщение от lmikle
Да какая идея-то нужна тебе?...
Поток:
Код:
type
TMyThread = class)TThread)
...
public
l, h : Integer; // Low and High indices in the Array
end;
Главная программа:
Код:
const
NumberOfThreads = 5;
...
for i := Low(A) To High(A) Do A[i] := ... // Fill the array
// create and run the threads
for i := 0 to NumberOfThreads-1 Do
begin
t := TMyThread.Create(True);
t.l := i * Length(A) / NumberOfThreads;
t.h := (i+1) * Length(A) / NumberOfThreads - 1;
t.resume;
end;
Но сделать так, как я сказал раньше - правильнее, гибче и эффективнее.
|
Вот мой код:
Главная форма
Код:
procedure TForm1.Button1Click(Sender: TObject);
const
NumberOfThreads = 5;
var
Threads: Integer;
A, m: Integer;
X: array [3 .. 10] of Integer;
begin
for m := Low(A) To High(A) Do
X[m] := m;
URL := Edit1.Text + '/memberslistxml/?xml=1&p=';
for Threads := 0 to NumberOfThreads - 1 do
begin
Th[Threads] := Searcher.Create(True);
Th[Threads].i := Threads * Length(A) / NumberOfThreads;
Th[Threads].h := (Threads + 1) * Length(A) / NumberOfThreads - 1;
Th[Threads].FreeOnTerminate := True;
Th[Threads].Start();
end;
end;
Поток
Код:
type
Searcher = class(TThread)
private
FHTTPS: THTTPSend;
FLIST, FHTML: TStringList;
FRegExp: TRegExpr;
protected
procedure Execute; override;
procedure sync;
procedure setheaders;
public
i, h: Integer;
end;
Компилятор ругается на ваш код , не понятно почему , возможно я что-то не так сделал?