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

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

Как задать время выполнения процедуры?


YuMB ©   (2006-12-20 18:14:00) 

Есть массив, содержащий временные интервалы (пусть будет в мс).
Есть процедура, которую надо запускать на определенное время.
Как осуществить повторяющееся выполнение процедуры с временами из массива?
С таймером возился, пока не получилось.


Amoeba   (2006-12-21 15:13:00) [1]


> YuMB   (21.12.06 11:12) [10]
> Прошу меня извинить, за неточность.
> В качестве "основной процедуры" выступает внешний прибор.
>

Ничего себе "неточность"!


Anatoly Podgoretsky   (2006-12-21 12:34:00) [2]

> YuMB  (21.12.2006 12:23:13)  [13]

> Не ломай голову, сам разберусь.

Да так и придется поступить, а то жалко самого себя любимого и других тоже.
Помощь то конечно не нужна, только поговорить.


YuMB   (2006-12-21 12:23:00) [3]


> Неисповедимы пути твои господни.

Очень полезный совет начинающему.
Не ломай голову, сам разберусь.


Anatoly Podgoretsky   (2006-12-21 12:14:00) [4]

> YuMB  (21.12.2006 11:12:10)  [10]

Ну насчет Стоп основной процедуры ты наконец объянился, а то я чуть не свихнулся, пытаясь понять это, но зато теперь опять проблема с головой, что же это такое -

> Но процедура в этом цикле тоже будет нужна.
> Может реализовать её внешней программой?

Неисповедимы пути твои господни.


YuMB   (2006-12-21 11:31:00) [5]

Придется наверное делать разные потоки.


YuMB   (2006-12-21 11:12:00) [6]

Прошу меня извинить, за неточность.
В качестве "основной процедуры" выступает внешний прибор.

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

Но процедура в этом цикле тоже будет нужна.
Может реализовать её внешней программой?


Desdechado   (2006-12-21 10:57:00) [7]

> время работы процедуры
Это сколько она должна работать? Т.е. должна работать, например, 5 минут, после этого завершаться? Или что?


alex_***   (2006-12-21 10:53:00) [8]

я бы запустил отдельный поток, который бы висел в sleep, а после отсылал сообщение на запуск процедуры, потом опять уходил в sleep со след. интервалом.

а мне непонятно вот это:


> время работы процедурыи параметры в массиве

как можно задать время работы процедуры. Она ничего не делает?


iXT   (2006-12-21 09:35:00) [9]

for i:=0 to " несколькораз" - 1 do
begin
TimeStart:= Now;
while Now - TimeStart < x do
 begin
{Procedure text}
 end;
Sleep(n);
end;


Сергей М.   (2006-12-21 09:28:00) [10]


> стоп основной процедуры


Из всего описанного тобой вот этонаиболее интересно.
Соблаговоли поведать общественности как это тобой реализовано ?


YuMB   (2006-12-21 09:17:00) [11]

Процедура должна выполнятся несколько раз, время работы процедуры и параметры в массиве.

Сделал. Алгоритм такой (если кого интересует)  :

В событие таймера помещаем процедуру смены параметров,
которая делает:
  - стоп основной процедуры,
  - стоп таймер,
  - читает следующую строку массива,
  - задание времени таймера,
  - задание параметров основной процедуры,
  - пуск основной процедуры,
  - пуск таймера.


alex_***   (2006-12-20 18:55:00) [12]

интервал в массиве


trubin   (2006-12-20 18:37:00) [13]


> Есть процедура, которую надо запускать на определенное время.

Не понятно, процедура должна периодически вызываться в течении промежитка времени указанного в очередном элементе массива? Если да, то через какой интервал?


alex_***   (2006-12-20 18:34:00) [14]

выполнение асинхронно? и надо ли делать что процессу между запусками (в лоб - можно в sleep уходить)


Desdechado   (2006-12-20 18:34:00) [15]

как возился?
что значит "запускать на определенное время"? на 5 минут, а потом рубить?


Наверх

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