2009-10-03 7 views
2

Comment créer des threads personnalisés à exécuter dans une application Gtk?Threads personnalisés?

Étant donné cet exemple simpliste:

@w = Gtk::Window.new "testtest" 
@l = Gtk::Label.new "test" 
@w.add @l 
@w.show_all 
Gtk.main 

Comment pourrais-je courir un fil comme celui-ci?

Thread.start { loop { puts 'thread running'; @l.text = Time.now.to_s; sleep 1 }} 

j'ai eu cette approche basée sur le travail avec délai d'attente-#timeout_add, mais ce n'est pas très agréable et ne fonctionne pas pour ce que je suis vraiment en train de réaliser: en attente d'un signal de dbus.

J'ai essayé beaucoup de choses, chacune d'entre elles étant bloquée par le thread gtk ou par mon propre thread. J'ai également essayé d'utiliser http://ruby-gnome2.sourceforge.jp/hiki.cgi?tips_threads mais je ne suis pas sûr que c'est en fait le même problème)

Répondre

1

Je sais que Redcar a été déplacé de gtk parce que je crois qu'il n'a pas réussi à faire fonctionner les tests correctement.

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

vous pouvez donc en fait demander daniel ou sur cette liste de diffusion. En termes de diagnostic de l'accrochage, je suppose que vous pourriez utiliser strace ou quoi ne pas voir où il est suspendu. L'exécution avec 1.9 peut également vous aider car vous pouvez définir certains appels C comme "non bloquants" dans les extensions binaires. GL. -r