miner7 10 Опубликовано: 25 сентября, 2020 Недавно выяснил для себя, что функция, которая вызывается таймером, запускается в отдельном от программы окружении, поэтому при закрытии программы функция продолжает выполняться. Есть ли способ автоматически при закрытии программы удалять таймер? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
eu_tomat 2 155 Опубликовано: 25 сентября, 2020 https://minecraft-ru.gamepedia.com/OpenComputers/Event_API event.cancel(timerId: function): boolean Отменяет таймер созданный командой event.timer. Возвращает true, если таймер успешно отменен и false, если таймера с таким ID не существует. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
miner7 Автор вопроса 10 Опубликовано: 25 сентября, 2020 Вы, наверное, не правильно поняли мой вопрос) Я имею ввиду способ определять окончание работы программы (например, закрытие Ctrl+Alt+C) и автоматически удалять таймер при условии, что ID мне известен. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
NEO 542 Опубликовано: 25 сентября, 2020 2 часа назад, miner7 сказал: Недавно выяснил для себя, что функция, которая вызывается таймером, запускается в отдельном от программы окружении, поэтому при закрытии программы функция продолжает выполняться. Есть ли способ автоматически при закрытии программы удалять таймер? Установить обработчик на закрытие программы и отменять таймер функцией cancel. Автоматического сборщика мусора для таймеров в OpenOS нет, не путать с gc луа. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
miner7 Автор вопроса 10 Опубликовано: 25 сентября, 2020 @NEO, а как можно это реализовать? Как понять, что программа закрыта? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
NEO 542 Опубликовано: 25 сентября, 2020 16 минут назад, miner7 сказал: @NEO, а как можно это реализовать? Как понять, что программа закрыта? В других случаях нужно обрабатывать ошибки. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
vx13 2 271 Опубликовано: 26 сентября, 2020 Можно использовать потоки. Обработчики событий и таймеры будут удалены при завершении потока. 1 Цитата Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
Недавно выяснил для себя, что функция, которая вызывается таймером, запускается в отдельном от программы окружении, поэтому при закрытии программы функция продолжает выполняться. Есть ли способ автоматически при закрытии программы удалять таймер?
Поделиться сообщением
Ссылка на сообщение
Поделиться на других сайтах