これでいいのかなぁ?
先日の時計プログラムを、「スレッド側のウェイト無しで実行」するために修正を加えてみました。
#スレッドを使った時計サンプル2 #2008.03.24 Cyross Makoto require 'Miyako/miyako' require 'Miyako/idaten_miyako' include Miyako @base = Sprite.new(:size=>[400,40], :type=>:ac) @base.centering @font = Font.sans_serif @font.size = 32 @base.show #時間を描画するスレッドを作成 @proc = Proc.new{|spr, font| spr.fill([0,0,0,0]) font.draw_text(spr, Time.now.strftime("ただいまの時刻 %H:%M:%S"), 0, 0) } Miyako.main_loop do break if Input.quit_or_escape? th = Thread.new(@base, @font, &@proc) th.join end
でも・・・なんか違うような気が。
「よく設計されたアプリケーションは、スレッドの処理はスレッドに任せます」
(「プログラミングRuby第2版 言語編」p119)
と書かれているのに、join→再生成をスレッド外で行っている。
これはこれで正しいのか間違っているのかなぁ?
教えてえらい人。