![]() |
|
|
Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
![]() |
|
Опции темы | Поиск в этой теме | Опции просмотра |
#1
|
|||
|
|||
![]() Добрый вечер. Подскажите, пожалуйста, со следующим вопросом. Для реализации многопоточности мне нужно, чтобы каждый поток работал со своим одномерным массивом, то есть: первый поток работал с массивом ui1, второй – с ui2, третий – с ui3 и т.д. Поток (PotokNumber) будет работать с массивом uiPotokNumber. Мне нужна Ваша помощь только для кода, представленного ниже. Пожалуйста, не пишите мне, что тут нет многопоточности: я это знаю. Спасибо Вам за помощь.
Мне нужно реализовать код, чтобы он выполнял примерно следующие действия: Вызов процедуры обязательно должен быть в цикле. Код:
for k:=1 to PotokNumber do begin procedure Pro (k, ui^[k]); for j:=1 to 10 do OldMas[j]:=ui^[k] [j]; end; procedure Pro (a:integer; var New^[а]:arrptr); var l:integer; begin for l:=1 to 10 do New^[а][l]:=l/2 end; lmikle: Используем ПРАВИЛЬНЫЕ теги! Последний раз редактировалось lmikle, 09.12.2012 в 02:48. |
#2
|
|||
|
|||
![]() Не совсем понял в чем вопрос.
Пусть у тебя N массивов, каждый из которых должен обрабатываться отдельным потоком. Тогда просто для описания из можно объединить в массив порядка+1 (если исходные массивы одномерные, то в двухмерный). Далее в каждый поток просто передаешь ссылку на этот массив и индекс нужного подмассива. Большая проблема дождаться окончания всех потоков... |