Перейти к содержимому
  • 0
miner7

Как отменить таймер при закрытии программы?

Вопрос

Недавно выяснил для себя, что функция, которая вызывается таймером, запускается в отдельном от программы окружении, поэтому при закрытии программы функция продолжает выполняться. Есть ли способ автоматически при закрытии программы удалять таймер?

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Рекомендуемые сообщения

https://minecraft-ru.gamepedia.com/OpenComputers/Event_API

 

event.cancel(timerId: function): boolean

Отменяет таймер созданный командой event.timer. Возвращает true, если таймер успешно отменен и false, если таймера с таким ID не существует.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Вы, наверное, не правильно поняли мой вопрос) Я имею ввиду способ определять окончание работы программы (например, закрытие Ctrl+Alt+C) и автоматически удалять таймер при условии, что ID мне известен.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
2 часа назад, miner7 сказал:

Недавно выяснил для себя, что функция, которая вызывается таймером, запускается в отдельном от программы окружении, поэтому при закрытии программы функция продолжает выполняться. Есть ли способ автоматически при закрытии программы удалять таймер?

Установить обработчик на закрытие программы и отменять таймер функцией cancel.

Автоматического сборщика мусора для таймеров в OpenOS нет, не путать с gc луа.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

@NEO, а как можно это реализовать? Как понять, что программа закрыта?

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
16 минут назад, miner7 сказал:

@NEO, а как можно это реализовать? Как понять, что программа закрыта?

 

 

В других случаях нужно обрабатывать ошибки.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Можно использовать потоки. Обработчики событий и таймеры будут удалены при завершении потока.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
Ответить на вопрос...

×   Вы вставили отформатированное содержимое.   Удалить форматирование

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отобразить как ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.


×
×
  • Создать...