Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Вызов функции из цикла


Anonimus ©   (2005-06-08 11:26:00) 

Добрый день. есть следующая задача. Имеем функцию, время выполнения которой может колебаться от 7-8 ms до 2 s.
Требуется вызвать эту функцию из цикла для каждого элемента некоего массива записей, при том непрерывно для каждого элемента массива вне зависимости от того, выполнена ли функция для предидущего элемента массива. Т.е.

function f1(<paramlist>): boolean;
var arr: array of tMyRec;

begin
 for i:=0 to Length(arr)-1 do
   if f1(arr[i]) then begin
     <statements>
   end;
end;


при этом нужно, чтобы f1(arr[1]) могла вернуть результат независимо от того отработала ли f1(arr[0])
Какэто можно реализовать?


Anonimus   (2005-06-08 11:50:00) [1]

Anonimus ©   (08.06.05 11:49) [5]
Сорри, не  тому ответил :-)


Anonimus   (2005-06-08 11:49:00) [2]

dmitry501 ©   (08.06.05 11:35) [1]
Рекурсии здесь нет, ты немного не правильно понял


Anonimus   (2005-06-08 11:48:00) [3]

Т.е. я так понимаю:


function f1(<paramlist>,th: TThread): boolean;
begin
..........
 th.Terminate;
end;
var arr: array of tMyRec;
   th: TThread;

begin
for i:=0 to Length(arr)-1 do begin
  th:=TThread.Create;
  if f1(arr[i]) then begin
    <statements>
  end;
  th.resume;
end;
end;


Я правильно понял?


Digitman   (2005-06-08 11:39:00) [4]

для каждого аргумента организуй доп.трэд и вызывай ф-цию с этим аргументом в созданном трэде


GreatMaster   (2005-06-08 11:38:00) [5]

А накой ты рекурсию то заворачиваешь?


dmitry501   (2005-06-08 11:35:00) [6]

Anonimus ©   (08.06.05 11:26)
Функцию f1 реализуй через tthread


Наверх

Титульная страница Поиск, карта сайта Написать письмо