LINUX.ORG.RU

PyGtk idle event


0

1

Пытаюсь найти способ выполнять код программы параллельно с gtk.main() . Вроде же был какой-то idle event, но что-то не гуглится. Как это принято делать, select? Я пока делаю так:

class GuiClient:
    def __init__(self, sockfile='./gui-client.sock'):
         self.running = True
            
        #signal.signal(signal.SIGHUP, self.start)
        signal.signal(signal.SIGINT, self.stop)
        signal.signal(signal.SIGTERM, self.stop)
               
        self.w = ui.Window()
          
        print('Inter GtkMain')
        self.w.show_all()
        gobject.timeout_add(100, self.update)
        ui.gtk.main()
        print('Exit GtkMain')
       
    def update(self):
        print 'updated!'
        if self.running:
            return True
        else:
            return False

Ответ на: комментарий от pseudo-cat

>выполнять код программы параллельно с gtk.main()
Для этого нужны потоки. Чтобы что-то параллельно запускать.
А если надо задать функцию... что-то типа main-loop... тогда надо гуглить.

Bad_ptr ★★★★★
()

Кстати чем таймаут не нравится? Оно обычно меньше процессор жрёт, чем тупой idle-loop

Bad_ptr ★★★★★
()
Ответ на: комментарий от yoghurt

Потомучто в идле функция постоянно крутится и выполняется, а таймаут даёт передышку, в размере заданного интервала :-))

Bad_ptr ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.