2

如何创建自定义线程以在 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但我不确定它是否真的是同一个问题)

4

1 回答 1

1

我知道 Redcar 从 gtk 转移,因为我相信它无法让测试正常工作。

http://redcareditor.com/blog/2009/08/redcar-is-moving-to-jruby/

http://groups.google.com/group/redcar-editor/browse_thread/thread/1a4d4718cf10c170/fa5e481d6365cb41?lnk=gst&q=gtk+test#fa5e481d6365cb41

所以你实际上可以问丹尼尔或在那个邮件列表上。

在诊断挂起方面,我想您可以使用 strace 或什么不查看挂起的位置。使用 1.9 运行也可能会有所帮助,因为您可以在二进制扩展中将某些 C 调用设置为“非阻塞”。总帐。-r

于 2010-08-01T04:58:22.373 回答