![]() |
|
|
|||||||
| Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
|
|
Опции темы | Поиск в этой теме | Опции просмотра |
|
#1
|
||||
|
||||
|
Всем привет) Такая проблема возникла.
Есть программа, в ней используются потоки. Причем количество потоков задается числом в edit. Далее, в МЕМО вводятся фамилии, по одной на каждую строчку. И мне нужно в несколько потоков провести одинаковые действия со списком. Естественно встала проблема синхронизации(или как бы это назвать) . Т.е. нужно чтобы одновременно в каждом потоке был обработан свой элемент(не повторяясь). Код прилагаю.(В этом коде все потоки идентичны и выполняют одинаковую работу несколько раз )класс потока: Код:
TMyTr = class(TgsvThread)
http:TidHttp;
protected
procedure Execute; override;
end;Создаем и запускаем их: Код:
procedure TForm1.Button1Click(Sender: TObject);
var i:integer;
begin
for i:=1 to spinedit1.Value do
begin
thr[i]:=TMyTr.Create;
thr[i].Pause(1);
thr[i].Resume;
end;Сам поток выглядит так: Код:
procedure TMyTr.Execute; var //переменные begin //обрабатываем элементы мемо end; Чую, как то можно сделать, но до меня не допрет никак прошу здесь помощи) ЗЫ мб делить список на куски и раздавать каждому потоку свой кусок? незнаю как реализовать... или может есть способ легче? |