far.Timer

Здесь обсуждается всё, что касается макросов.
User avatar
zg
zero-gravity
Posts: 6015
Joined: Tue 15 Mar, 2005 17:36
Location: riga
Been thanked: 185 times
Contact:

far.Timer

Post by zg »

Latest post of the previous page:

все задачи с таймерами можно разбить на две группы: где важно количество вызовов и где не важно. текущая реализация работает и там и там. то, что предлагаете вы - работает лишь со второй группой.
User avatar
John Doe
Бюрократ
Posts: 13801
Joined: Wed 27 Apr, 2005 20:42
Has thanked: 72 times
Been thanked: 425 times
Contact:

far.Timer

Post by John Doe »

zg wrote: Fri 20 Oct, 2017 09:57то, что предлагаете вы - работает лишь со второй группой.
Именно, потому что задач первой группы не смог придумать ни одной.
Выше спрашивал, никто тоже не подсказал.

Впрочем, даже с моим предложением можно решить те гипотетические задачи, вычисляя количество пропущенных итераций делением времени, прошедшее с последнего вызова, на период таймера.
User avatar
HaRT
Moderator
Posts: 10806
Joined: Tue 30 Aug, 2005 17:21
Has thanked: 220 times
Been thanked: 357 times

far.Timer

Post by HaRT »

John Doe wrote: Wed 06 Aug, 2014 14:02Может стоит запретить накопление?
Альтернативное решение — объединение одинаковых событий во входной очереди (разумеется, со счётчиком). Разумеется, должны ли события данного типа объединяться, следует решать для каждого типа отдельно. Например, события таймера или автоповторы нажатой клавиши, вероятно, стоило бы объединять.
Фар есть инструмент, а не нянька. © 2009 DrKnS
User avatar
John Doe
Бюрократ
Posts: 13801
Joined: Wed 27 Apr, 2005 20:42
Has thanked: 72 times
Been thanked: 425 times
Contact:

far.Timer

Post by John Doe »

HaRT wrote: Fri 20 Oct, 2017 12:21Альтернативное решение — объединение одинаковых событий во входной очереди
Да, так тоже можно.
Применительно к far.Timer, счётчик событий может быть вторым аргументом функции-хэндлера, либо свойством объекта timer.
HaRT wrote: Fri 20 Oct, 2017 12:21 Разумеется, должны ли события данного типа объединяться, следует решать для каждого типа отдельно.
И это можно, например методом объекта таймер.
Только не соглашусь с формулировкой "Разумеется". Да, это было бы наиболее универсально, и волкам и овцам.
Но нужно ли?

Возможно я не вижу всей картины, но похоже что задачи "первого" типа в реальной практике у нас встречаются редко (надеюсь кто-нибудь хоть один реальный пример приведёт, чтобы было о чём говорить.)
Предлагаемое изменение ещё в изначальной формулировке упростит работу с задачами "второго" типа, при этом (как мне пока кажется) сохранив возможность работы с задачами "первого" типа, хоть и не так удобно.
Post Reply

Return to “Обсуждение макросов”