Вниз
Скачать: CL | DM;

Как вычислять параллельно?   Найти похожие ветки 

← →
grisme ©   (2006-05-03 17:56) [0]

Возникла проблема. Необходимо вычислить время большого числа итераций. Делал таймер так:
 sec:=0;
 timer1.enabled:=true;
 for i:=1 to [...] do [...];
 timer1.enabled:=false;
 caption:=inttostr(sec);
{в коде OnTimer наращиваю sec}
Естесственно,seс выходит равный 0!..( Думаю,надо параллельный какой-нибудь процесс создать...Подскажите плиз как примерно это должно выглядеть...{пример был бы ОЧЕНЬ хорош}


← →
Eraser ©   (2006-05-03 18:06) [1]


> grisme ©   (03.05.06 17:56)


var
 t1, t2: TDateTime;
...
t1 := now; // или GetTickCount
<интерации>
t2 := now; // или GetTickCount
t1 := t2 - t1;
ShowMessage(TimeToStr(t1)); // или любая другая ф-я форматирования даты.


← →
grisme ©   (2006-05-03 19:02) [2]

Eraser

Пасиба огромное, сразу не дошло...:) А как все-таки(интереса ради) можно вычислять еще параллельно? Создавать отдельный поток?


← →
Eraser ©   (2006-05-03 19:10) [3]


> grisme ©   (03.05.06 19:02) [2]

можно.
сколько примерно времени длится вычисление?


← →
grisme ©   (2006-05-03 19:31) [4]

примерно минуту.


← →
Eraser ©   (2006-05-03 20:00) [5]


> grisme ©   (03.05.06 19:31) [4]

тогда лучше делать так - вычисления выполнять в доп. потоке, а время засекать обычным таймером с интервалом 1 сек.


var
 i: Integer;
...
i := 0;
Timer1.Interval := 1000;
Timer1.Enabled := true;
<начало создание потока вычислений>
...
procedure TForm1.Timer1Timer(Sender: TObject);
begin
 Inc(i);
 label1.Сaption := "Вычисления идут " + inttostr(i) + " секунд";
end;

не забыть отключить таймер после завершения работы доп. потока.


← →
grisme ©   (2006-05-03 20:52) [6]

Спасибо, Eraser.;)



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

Скачать: CL | DM;



Память: 0.46 MB
Время: 0.025 c
2-1154693181
AlexanderMS
2006-08-04 16:06
2006.08.27
Работа с иконками (TIcon).


2-1154771914
Ильдар
2006-08-05 13:58
2006.08.27
Обучение DerectX


11-1131525779
algambra
2005-11-09 11:42
2006.08.27
В любом месте области формы по клику мышки срабатывает процедура


2-1154785530
susergey
2006-08-05 17:45
2006.08.27
работа с текстовым файлом


3-1150872268
Jakudza
2006-06-21 10:44
2006.08.27
Как в QuickReport сделать CrossTab отчет




   Наверх