|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
|
Опции темы | Поиск в этой теме |
04.12.2011, 23:31 | #1 |
Зелень
Форумчанин
Регистрация: 03.02.2007
Сообщений: 302
|
timer
Есть такая задача:
Задаем переменной значение времени (например 20 минут). Ровно через 20 минут нужно "что-то сделать" (неважно что, какие-то действия). После этого переменную время сбросить на ноль. Опять круг, только переменная время получает какое-то значение (например 5 минут), опять пошел отсчет, по прошествии 5 минут "что-то делаем" - переменную время в ноль. Плюс таких переменных 10, каждая переменная может получить когда угодно значение и какое угодно. Не знаю доступно ли я рассказал, просто реальную задачу очень долго рассказывать. Вешать на каждую переменную таймер и каждую секунду проверять. Сильно нагруженно и нерационально, хотелось бы обойтись например одним таймером. Короче в тупике, прошу подмоги. ))) Мне очень неудобно, но, ей-богу... Причина закрытия темы подробно описана в самом первом пункте правил раздела... Там даже примеры приведены, как следует называть свою тему, а как не следует. С прискорбием, Михалыч. (даже тем, у кого больше 200 постов, правила соблюдать "нуно" ) Причем - "тем более"... Просто переименовывать по правилам не стал - в воспитательных целях... Последний раз редактировалось mihali4; 05.12.2011 в 01:12. |
04.12.2011, 23:51 | #2 |
Старожил
Регистрация: 28.01.2009
Сообщений: 21,000
|
самое простое это 10 таймеров.
в сам интервал таймерра и заносим время, и включаем его, через интервал он сработает. Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел. Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите. |
04.12.2011, 23:54 | #3 |
Зелень
Форумчанин
Регистрация: 03.02.2007
Сообщений: 302
|
Дело не в самом простом, а в самом правильном. (((
Немного уже надоело лепить вечно, абы работало. + еще в дальнейшем развитии моей программы возможно таймер-переменных вырастет до 100, вешать 100 таймеров - глупо. |
04.12.2011, 23:59 | #4 |
Форумчанин
Регистрация: 26.07.2009
Сообщений: 489
|
Предлагаю решать задачу так:
1) Помещаем все времена (значение времени, через которое надо что-то выполнить) в массив 2) Соотвественно этим временам создается массив с необходимыми значениями 3) Находится минимальное значение времени и устанавливается Interval таймера в это значение 4) В обработчике таймера, отнимаем у всего массива время, и в массиве где время = 0, обнуляем соотвествующий элемент (или то, что вам необходимо сделать) 5) Повторяются все действия начиная с 3 пункта Либо для каждого значения массива динамически создавать таймер и настраивать его.
Если в глубине души вы программист, то, следуя своим наклонностям, вы захотите написать кусок кода.
Последний раз редактировалось chertovich; 05.12.2011 в 00:03. |
05.12.2011, 00:00 | #5 | |
Старожил
Регистрация: 30.12.2009
Сообщений: 11,426
|
Я бы реализовал все на Event'ах и WaitForSingleObject ввиде пула потоков.
А вообще Цитата:
Может проще рассказать нам что у вас за задача? А мы подскажем правильный подход к её решению.. Последний раз редактировалось Человек_Борща; 05.12.2011 в 00:03. |
|
05.12.2011, 00:03 | #6 | |
Старожил
Регистрация: 17.11.2010
Сообщений: 18,922
|
Держать массив заданий, в нем информацию о каждом задании (запускалось, не запускалось, время запуска, последовательность запуска, интервал и т.д.). В одном таймере проверяйте массив заданий и делайте то, что предусмотрели
add chertovich то же самое предложил чуть раньше Цитата:
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
Последний раз редактировалось Аватар; 05.12.2011 в 00:11. |
|
05.12.2011, 00:04 | #7 |
Высокая репутация
СуперМодератор
Регистрация: 27.07.2008
Сообщений: 15,551
|
1 таймер и менять interval каждый раз.
E-Mail: arigato.freelance@gmail.com
|
05.12.2011, 00:05 | #8 |
Форумчанин
Регистрация: 26.07.2009
Сообщений: 489
|
Вы не указали необходимый интервал для таймера
Если в глубине души вы программист, то, следуя своим наклонностям, вы захотите написать кусок кода.
|
05.12.2011, 00:08 | #9 | |
Участник клуба
Регистрация: 08.10.2007
Сообщений: 1,185
|
CreateTimerQueueTimer подойдёт?
Цитата:
|
|
05.12.2011, 00:12 | #10 | |
Зелень
Форумчанин
Регистрация: 03.02.2007
Сообщений: 302
|
Ок, прямая задача.
Пишется программа управления интернет кафе. Где бабло внеслось, расчет произошел бабло -> время. По приходу бабла, и запуска времени - дали команду открыть компьютер, бабло, тоесть время закончилось - дали команду закрыть компьютер. Как бы реализация мне понравилась. Даже очень понравилась, минимум затратного времени, да и реализация очень простая. Цитата:
Последний раз редактировалось Небесный; 05.12.2011 в 00:16. |
|
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
timer(vc++) | NiCola999 | Windows Forms | 13 | 31.01.2011 06:00 |
timer | Erick Cartman | Помощь студентам | 4 | 12.03.2010 19:57 |
Timer | Arhangel_bes | Помощь студентам | 2 | 27.10.2008 17:55 |
timer | ZYRGiX | Помощь студентам | 3 | 21.07.2008 15:15 |
timer | Toxa | Компоненты Delphi | 6 | 06.12.2006 06:58 |