【问题标题】:Custom threads?自定义线程?
【发布时间】:2009-10-03 15:39:24
【问题描述】:

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

【问题讨论】:

    标签: ruby multithreading gtk dbus


    【解决方案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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-05-06
      • 2010-09-27
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-07-22
      • 1970-01-01
      相关资源
      最近更新 更多