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

実際に daniel やメーリング リストで質問することができます。

ハングの診断に関しては、 strace または what not を使用して、ハングしている場所を確認できると思います。また、バイナリ拡張で特定の C 呼び出しを「非ブロッキング」に設定できるため、1.9 で実行すると役立つ場合があります。GL。-r

于 2010-08-01T04:58:22.373 に答える