サイログ。

~雑多な記事置き場~

これでいいのかなぁ?

先日の時計プログラムを、「スレッド側のウェイト無しで実行」するために修正を加えてみました。

#スレッドを使った時計サンプル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→再生成をスレッド外で行っている。

これはこれで正しいのか間違っているのかなぁ?

教えてえらい人。