Clamp
Lost in space
offline
Опыт:
71,158Активность: |
Про функциональность таймеров
Простой короткий вопрос, проверить сейчас, к сожалению, не могу.
Если я запускаю один и тот же таймер 100тыщ раз подряд с разным таймаутом и разными функциями, то все они сработают? |
05.12.2013, 03:51 | #1
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
Hate
конь вакуумный
offline
Опыт:
43,037Активность: |
нет |
05.12.2013, 04:57 | #2
+2/−2
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
Clamp
Lost in space
offline
Опыт:
71,158Активность: |
Hate, весьма оперативно, спасибо!
А что будет и как всё-всё в доте упихивается в один таймер? (я доселе каждой функции свой заводил, потом удаляя) |
05.12.2013, 05:22 | #3
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
Buulichkaa
Делаю спеллы за еду
offline
Опыт:
20,171Активность: |
Clamp, таймер, запущенный на опреледенную ф-ию будет обрабатывать лишь эту ф-ию. |
05.12.2013, 06:20 | #4
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
Clamp
Lost in space
offline
Опыт:
71,158Активность: |
Buulichkaa, спасибо, но это уже сказали выше. Вопрос был переформулирован в "как реализовать корректную работу всех функций, используя один таймер". |
05.12.2013, 06:23 | #5
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
Buulichkaa
Делаю спеллы за еду
offline
Опыт:
20,171Активность: |
Clamp, делать по циклу на структуру, т. е по циклу на наш спелл и в цикле обрабатывать все активные объекты. |
05.12.2013, 06:28 | #6
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
Clamp
Lost in space
offline
Опыт:
71,158Активность: |
Ясно, идиотизм и геморрой =/
Ну их нахер тогда, обойдусь такой конструкцией, так как целью было просто удобный юз сделать:
|
05.12.2013, 06:46 | #7
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
Buulichkaa
Делаю спеллы за еду
offline
Опыт:
20,171Активность: |
Clamp, можно было бы представить сами структуры через БД в основной структуре обрабатываемой циклом и обращаться к функциям обработки через БД строк и ExecutFunc()
А вообще это все не принципиально, что один таймер, что много, на самом деле разницы нет, во всяком случае в наше время. Buulichkaa добавил: По таймеру на ф-ию вполне можно жить |
05.12.2013, 07:15 | #8
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
Bashmak
offline
Опыт:
377Активность: |
Коль тема о таймерах, задам вопрос здесь же. На днях заметил, что ежели запаузить многократный таймер, то отпаузится он некорректно. Как это можно исправить? По новой их создавать?
|
05.12.2013, 09:09 | #9
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
Buulichkaa
Делаю спеллы за еду
offline
Опыт:
20,171Активность: |
ExSinner, что значит многократный таймер? Таймер который обрабатывает много действий в периодике? Все нормально паузится. PauseTimer(some_timer) |
05.12.2013, 09:43 | #10
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
ScorpioT1000
Работаем
online
Опыт: отключен
|
можно ещё обойтись установкой ide для актуального движка, а не игры 15-летней давности
я не знаю ни одной программы, где было бы больше костылей, чем в доте для вц3... |
05.12.2013, 11:51 | #11
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
Clamp
Lost in space
offline
Опыт:
71,158Активность: |
ScorpioT1000, я работаю 9/5 в актуальном движке, хочется же повспоминать старое) |
05.12.2013, 12:21 | #12
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
ScorpioT1000
Работаем
online
Опыт: отключен
|
тогда посмотри как в tcx сделано, там есть коммент MAIN LOOP |
05.12.2013, 12:23 | #13
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
DioD
offline
Опыт:
45,134Активность: |
запускается один таймер который тикает 20 раз в секунду
каждую секунду внутри таймера считается массив колбеков и они исполняются
те колбеки которые должны ждать больше тика исполняются каждый Х тик или наоборот не исполняются каждый Х тик
как показала практика перезапускать таймер чтобы подобрать более менее подходящий период и поджидать нужные тики.
привязка идёт через Condition(function X) и triggercondition, когда надо убираем когда не надо добавляем, кондишины статик и перманент. |
05.12.2013, 13:56 | #14
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
ScorpioT1000
Работаем
online
Опыт: отключен
|
это гарантированно медленней регистрации отдельных таймеров, если что. они специально для этого были придуманы, чтобы не делать свой пулл на говноязыке |
05.12.2013, 14:08 | #15
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
DioD
offline
Опыт:
45,134Активность: |
но гарантированно быстрее чем постоянный перезапус одного таймера читай что автор спрашивает штоле? |
05.12.2013, 15:29 | #16
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
ScorpioT1000
Работаем
online
Опыт: отключен
|
ему уже ответили во втором посте, что не сработает. даже тысяча повиснет к хукам. |
05.12.2013, 15:32 | #17
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
adic3x
offline
Опыт:
108,439Активность: |
По моему скромному мнению - быстрее. Я даже когда-то тесты проводил. Я, когда делал спел "напалм" - там была возможность сильных задержек - проверял. С точки зрения именно быстродействия - идеальный вариант - циклы по всем типам классов в одной функции. Даже пустой цикл будет быстрее вызова callback функции из родной функции обработки таймера. Впрочем, с другой стороны помните о лимите операции и думайте в первую очередь о стабильности, переносимости и читаемости кода. |
05.12.2013, 15:53 | #18
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
ScorpioT1000
Работаем
online
Опыт: отключен
|
а вызов юзерфункции в цикле?) или ты предлагаешь вместо функций писать дифайны везде или всё в одну запихать? это офк красотаб будет |
05.12.2013, 16:00 | #19
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
Bashmak
offline
Опыт:
377Активность: |
Buulichkaa, пардон, неправильно выразился. Таймер цикличный, то бишь при истечении он снова будет отсчитывать указанное время.
|
05.12.2013, 17:12 | #20
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|