2010-06-23 40 views
-2

同樣,我問這個問題:如何在Ruby中產生延遲?在Ruby中的語句之間產生延遲

puts "amit" 
sleep(10) 
puts "asda" 

我想要兩個語句之間的延遲。當我嘗試上面的例子時,首先我有10秒的延遲,然後執行兩個語句。我不想那樣。

+2

重複[如何生成del唉紅寶石](http://stackoverflow.com/questions/3084232/how-to-produce-delay-in-ruby)。這個問題已經在StackOverflow上被詢問和回答了。在詢問新的問題前,請嘗試搜索現有問題。 – 2010-06-23 11:51:31

+1

@JörgWMittag:這不像他不得不尋找。該問題(以及至少一個其他副本)已經由同一個人提出。 – sepp2k 2010-06-23 17:20:13

回答

2

看起來像放語句寫入文本輸出緩衝區,但 不會在新行

嘗試刷新它的打印語句後添加

$stdout.flush 

您程序應該看起來像這樣

puts "foo" 
$stdout.flush 
sleep(10) 
puts "bar" 
+0

謝謝先生 它的工作.... – 2010-06-23 11:37:36

+0

但先生,如果我使用任何聲明像打印比也行得通? 或如何在ruby之間產生延遲不僅在puts語句之間 – 2010-06-23 11:40:07

+0

puts語句被稱爲10秒後,但操作系統會緩衝第一條語句的輸出,直到您刷新緩衝區或緩衝區已滿 – 2010-06-23 11:44:57