wxRubyでThread使うときの注意事項

55 :デフォルトの名無しさん:2010/03/24(水) 18:06:29
>>54
>>50 と同じようなことだと思うけど、ワーカースレッド作って buttonPush で
ワーカースレッドにキューを投げるようにすればいいんじゃないの?
雰囲気は、こんな感じ。(動くかどうかは未確認)
def initialize
 @queue = Queue.new
 Thread.start do
  while q = @queue.pop
   storeBinary
  end
 end
end
def buttonPush
 @queue.push(:store)
end
59 :デフォルトの名無しさん:2010/03/24(水) 21:33:34
>>54
スレッドが回っていないんじゃない?多分。
GUI起動したmainスレッド側で実行権つかみっぱなしな悪寒
GUI起動直前に、タイマーかなんかで定期的に
Thread.passでスレッド回すコード追加してみたら
いけるかもね
66 :デフォルトの名無しさん:2010/03/24(水) 22:50:43
>>59
他の GUIツールキットの事情は知らないけど
wxruby はもろにそれだな

t = Wx::Timer.new(self, 9999)
evt_timer(9999) { Thread.pass }
Thread.new { hoge }
t.start(100)

こんな感じでタイマー使って定期的に Thread.pass してた