GTK: отменить таймаут

GTK позволяет установить таймаут с помощью g_timeout_add. Точно так же, как g_signal_connect, функция g_timeout_add возвращает идентификатор, представляющий таймаут. Итак, есть ли способ отменить тайм-аут с использованием идентификатора? Просматривая документацию, я не вижу никакого способа отменить событие тайм-аута, но я бы предположил, что должен быть какой-то способ, иначе что точка значения id, возвращаемого g_timeout_add?

Итак, есть ли способ отменить событие тайм-аута, или это просто то, что нужно обрабатывать вручную, установив "флаг отмены", который может быть проверен в функции пользовательского тайм-аута?

Ответ 1

Есть два способа удалить обратный вызов, зарегистрированный через g_timeout_add():

  • Возвратите функцию обратного вызова FALSE,
  • Вызовите g_source_remove() с идентификатором, возвращаемым g_timeout_add().