如何创建自定义线程以在Gtk应用程序中运行?
鉴于这个简单的例子:
@w = Gtk::Window.new "testtest"
@l = Gtk::Label.new "test"
@w.add @l
@w.show_all
Gtk.main
我怎么能运行这样的线程?
Thread.start { loop { puts 'thread running'; @l.text = Time.now.to_s; sleep 1 }}
我使用基于超时的方法使用#timeout_add,但这不是很好,并且不能用于我真正想要实现的目的:等待dbus信号。
我尝试了很多东西,每个东西要么挂起gtk线程,要么挂起我自己的线程。我也尝试使用http://ruby-gnome2.sourceforge.jp/hiki.cgi?tips_threads,但我不确定它是否真的是同一个问题)
答案 0 :(得分:1)
我知道Redcar从gtk迁移,因为我认为它无法使测试正常工作。
http://redcareditor.com/blog/2009/08/redcar-is-moving-to-jruby/
所以你实际上可以问丹尼尔或在那个邮件列表上。
在诊断悬挂方面,我想你可以使用strace或什么不能看到它挂在哪里。同样运行1.9可能会有所帮助,因为您可以在二进制扩展中将某些C调用设置为“非阻塞”。 GL。 -r