Многопоточная Delphi [закрыто]
У меня проблемы с многопоточностью в Delphi. У меня есть список имен (что-то около 2000 имен), и мне нужно получить данные о каждом имени на моем сайте. Моя система работает отлично, кроме контроля потока.
Я хочу создать 10 потоков, и, когда один поток завершится, создать еще один ... до конца списка.
var
Form1: TForm;
tCount: Integer; //threads count
implementation
type
TCheck = class(TThread)
public
constructor Create(Name: string);
destructor Destroy; Override;
protected
procedure Execute; Override;
end;
MainT = class(TThread)
protected
procedure Execute; Override;
end;
destructor TCheck.Destroy;
begin
Dec(tCount);
end;
procedure MainT.Execute;
var
i: Integer;
Load: TStringList;
begin
Load:=TStringList.Create;
Load.LoadFromFile('C:\mynames.txt');
for i:= 0 to Load.Count -1 do
begin
if tCount = 10 then //if we have 10 threads running...
begin
repeat
Sleep(1);
until tCount < 10;
end;
TCheck.Create(Load.Strings[i]);
TCheck.Start;
Inc(tCount);
end;
end; // end of procedure
Ну, я не поместил TCheck.Constructor, потому что проблема в том, как я проверяю количество созданных потоков. Я имею в виду, что мои программы просто останавливаются, без каких-либо сообщений об ошибках, иногда проверяют 500 имен, иногда 150 имен ...
Извините за плохой английский.