2014-06-16 17 views
0

我正在使用Ruby 2.0,Cygwin和Windows 8.以下程序不產生任何輸出;它將永遠循環而不是puts的時間。爲什麼在一個線程中的睡眠沒有put輸出?

hi = Thread.new do 
    while true do 
    puts Time.now # or call tick function 
    sleep 1 
    end 
end 
hi.join 

我錯過了什麼嗎?

我想要的功能是:

  • 做一些
  • 等待3-10秒鐘
  • 再做一次等
+0

我知道我不會發瘋,這對我的Ubuntu devbox非常有用! – SparkyRobinson

+1

嘗試'$ stdout.sync = true' – Stefan

+0

@Stefan夢幻般的Stefan!謝謝!你知道這是爲什麼嗎?如果你在下面回答,我會給你正確的答案:) – SparkyRobinson

回答

1

好像你的輸出緩衝($stdout.sync默認爲false)。要立即刷新所有輸出,請使用以下命令啓動您的腳本:

$stdout.sync = true