![]() |
|
|
Регистрация | << Правила форума >> | 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; Чую, как то можно сделать, но до меня не допрет никак ![]() прошу здесь помощи) ЗЫ мб делить список на куски и раздавать каждому потоку свой кусок? ![]() |