Вниз
Скачать: 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.036 c
3-1150731490
rar
2006-06-19 19:38
2006.08.27
Хранимая процеддура


6-1144603398
Izolda
2006-04-09 21:23
2006.08.27
Поисковая система


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


2-1154639836
ronyn
2006-08-04 01:17
2006.08.27
Daclare in other units


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




   Наверх