Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2004.04.11;
Скачать: CL | DM;

Вниз

Паралельное выполнение функций.   Найти похожие ветки 

 
Игорь   (2004-03-19 12:24) [0]

Возможно ли в делфи паралельное выполнение функций.
Желательно одной и той же, но с разными параметрами.


 
hyper_omsk ©   (2004-03-19 12:29) [1]

Я так понял тебе нужна рекурсия
почитай про нее в faq
к примеру обход каталогов там как раз то что надо


 
Digitman ©   (2004-03-19 12:29) [2]

да, возможно

см. тему threads


 
Digitman ©   (2004-03-19 12:46) [3]

type

TFunc = function(Params: Variant): Integer;

TMyThread = class(TThread)
private
 FFunc: TFunc;
 FParams: Variant;
protected
 procedure Execute; override;
public
 constructor Create(Func: TFunc; Params: Variant);
end;

constructor TMyThread.Create;
begin
 FFunc := Func;
 FParams := Params;
 inherited Create(false);
end;
begin
end;

procedure TMyThread.Execute;
begin
 Returnvalue := FFunc(FParams);
end;

...

function SomeFunc(Params: Variant): Integer;
begin
 Result := Params[0] + Params[1];
end;

...

var
 Threads: array[0..9] of TMyThread;
 Totalresult: Integer;
..

for i := 0 to 9 do
 Threads[i] := TMyThread.Create(@SomeFunc, VarArrayOf([Random[10], Random[10]]));

Totalresult := 0;
for i := 0 to 9 do
begin
   Inc(Totalresult, Threads[i].WaitFor;
   FreeAndnil(Threads[i]);
end;

ShowMessage(IntToStr(Totalresult));



Страницы: 1 вся ветка

Текущий архив: 2004.04.11;
Скачать: CL | DM;

Наверх




Память: 0.47 MB
Время: 0.033 c
14-1079305222
putyaga
2004-03-15 02:00
2004.04.11
за мобилу


14-1079610123
nikitos
2004-03-18 14:42
2004.04.11
Где найти заказчика?


1-1082551540
vin
2004-04-21 16:45
2004.04.11
PopupMenu на раскрытом ComboBox-е


1-1082434287
-Maximus-
2004-04-20 08:11
2004.04.11
ScrollBox


14-1081925575
Мараканец
2004-04-14 10:52
2004.04.11
Блокировка данных....