Такой вопрос. Я знаю, что если в функции есть время

- delay, таймер - то при повторном обращении к ней, она начинает сначала. Т.е. если поставить delay на 2 секунды, и обращаться к функции каждую секунду, то логика после delay никогда не сработает.
Это работает так же для прочих функций, не использующих время? Например, у меня есть функция без какого либо использования времени. Без таймеров, делеев и прочего.
Если в игре так совпадет, что ее вызовут 2 раза, почти одновременно, то она НЕ будет сбрасываться? Оба раза посчитает (т.к. компилятор анрила их в очереди расположит) или все же сбросит?
Речь идет прям о миллисекундном совпадении, хочу понять, возможен ли с этим баг или нет.

5 ответов

16 просмотров

Предлагаю провести експеримент: 1. Запихиваете в тик delay на условно 5 секунд и после него принт на экран. По тому как написано, на экране ничего не будет, тик ведь точно чаще чем раз в 5 секунд. А на самом деле как? 2. Разместить в тик подряд выполнение двух функций. Сколько их выполниться за один тик? Выполниться ли их тик*2 раз или тик раз? Или сколько раз?

Андрей-Соболев Автор вопроса
Богдан Karabinskyi
Предлагаю провести експеримент: 1. Запихиваете в т...

Я раньше целый кусок БП переделывал по той причине, что повторный вызов функции до ее окончательного исполнения сбрасывал результат. Надо будет вновь гайды поискать по времени, кажется, я там многое не понимаю.

С самого начала ошибка в описании, вышесказанное относится только к retriggerable delay. По-поводу остального прям улыбнулся )) "почти одновременно" - это как? )) но нет, при нормальном написании логики с этим не может быть проблем в твоём случае

Андрей-Соболев Автор вопроса
Aleksei Gagarin
С самого начала ошибка в описании, вышесказанное о...

Спасибо. Я опасался случая когда, допустим в главном здании игрока функция "заспавнить юнит". И к ней, так выйдет, в одну миллисекунду 2+ БП обратятся одновременно.

Андрей Соболев
Спасибо. Я опасался случая когда, допустим в главн...

Здесь вообще некорректно оперировать понятием времени, второй вызов произойдет только тогда, когда закончится первый, т.е. произойдет выход из функции. Это в случае, если ты не используешь латентные/асинхронные функции. Если используешь, тогда ты уже просто заранее должен понимать, что повторный вызов функции может произойти, когда операция ещё выполняется и принять меры. Здесь уже от реализации функции все зависит. Delay и Ret... Delay неплохой пример того как разные функции могут себя вести при повторном вызове

Похожие вопросы

Обсуждают сегодня

Подскажите, а есть vault lite или ченить такое?) А то нужен вольт для похода в вольт, но весит он ~500 мб) как-то многовато для парочки запросов ))
Alexandr Orloff
17
Всем привет, есть небольшая проблема Есть такой скрипт document.addEventListener('DOMContentLoaded', function () { const sliderTabs = document.querySelectorAll('.s...
A da
8
@go1337 @dblackCat Привет. Все ещё дрочусь с fastpanel. Добавил второй домен который должен смотреть в рут того же сайта, но так как это просто домен, а не сайт, я не могу ему...
Ross 🦴
9
До речі, в ево нема можливості чи якого розширення щоб з адмінки з телефона зайти і терміново щось в верстці поправити?
Женя
7
Ну, так - шо, грамодяне-эрленгяне? Все - готовы подписаться под словами "гуру" на счёт трудности применения POSIX threads и про, конкретно, мьютексы, что "... недопоставишь м...
Wlad
21
кто-нибудь пользуется тайм-трекерами во время работы? так много разных нагуглил, может есть что-то популярное
Lencore
8
Пацаны. Я разрабатываю софт для инвайтинга на телетон, и столкнулся с такой проблемой, в один из чатов не могу приглашать никого, не дает добавлять, в то же время через официа...
Kernel Panic
11
Скажите, а кому нужен Currency как отдельный плагин вместо полноценного ecommerce в OctoberCMS? Кто-то использует его уже или планирует в будущем? Может я что-то не понимаю?
Igor
13
Розмовами про Рево мені нагадали часи, коли шаблони правилися прямо в адмінці. Хто в курсі, чому відійшли від цієї практики, так блейд не працює? Доволі зручно ж було (інколи)
Женя
3
привет, как сбилдить свифт прогу статически? делаю -Xswiftc -static-executable - получаю такую ошибку: /lib/aarch64-linux-gnu/libc.a(pthread_join_common.o)(.note.stapsdt+0x14...
🦊 Fox 🌸 🌸
6
Карта сайта