为什么threading.Timer函数不能用python中的Gtk.main调用

问题描述:

我想在Gtk应用程序中轮询一个函数。该代码是...为什么threading.Timer函数不能用python中的Gtk.main调用

from gi.repository import Gtk 
import sys,threading 

def destroy(k): 
print "destroyed" 
sys.exit() 

def poll(): 
print "called it " 
t=threading.Timer(1,poll) 
t.start() 

build=Gtk.Builder() 
build.add_from_file('test.glade') # it just creates a top level window 
window=build.get_object("boxy") 
build.connect_signals({"destroyit":destroy}) 
window.show_all() 
t=threading.Timer(1,poll) 
t.start() 
Gtk.main() 

不执行轮询功能。但如果我删除Gtk.main(),它工作得很好。所以这是怎么回事。为什么它不主要工作而不是与主...我如何执行一个轮询函数在这个..任何其他选择比threading.timer?

编辑:我发现的方式通过GObject.timeout_add(5000,民意调查),但我仍想知道身边,为什么threading.Timer功能犯规执行...

好,我找到了答案,我的问题...

GObject.timeout_add(5000,poll)