From: "前川 享仁" Date: 2012-12-08T16:29:18+09:00 Subject: [ruby-list:49058] Re: RubyでsetInterval まえかわです。 まだRubyを使って日が浅いので間違ってるかもしれませんが、 例えば別スレッドを使ってインターバルを取るというのは 以下のようなコードのことですよね? 自分はこれくらいしか思いつかないのですが、 これだと望むようなインターバルの精度が得られないという ことでしょうか? ------------------------------- f = nil #キャンセルフラグ lock = Mutex.new p = Proc.new do f_cancel = nil loop do sleep 5 lock.synchronize { f_cancel = f } unless f_cancel == nil puts "canceled" break else puts "hogehoge" end end end t = Thread.new(f, &p) sleep 30 lock.synchronize { f = true } t.join ------------------------------- (2012/12/08 15:07), swec@youko-house.ne.jp wrote: > ひろひとです。 > > Rubyで定期的な処理を書くには、どのようにすれば良いでしょう? > JavaScriptで言うところの、setInterval の処理をさせたいと考えています。 > ワンショットトリガー(setTimeout)ならば、sleepとThreadを組み合わせて > わりと簡単に書けそうですが、繰り返しの場合はインターバルタイムの > 精度を保ちたいので、この方法では簡単ではなさそうです。 > > どなたか、ご存知ではありませんか。 > > -- > ひろひと >