2010-01-27 85 views
5

在Ruby超時的代碼塊,我需要Ñ秒後超時的代碼塊的執行。我知道紅寶石超時庫支持超時在紅寶石後N * *毫秒

http://ruby-doc.org/stdlib/libdoc/timeout/rdoc/index.html

這可能嗎?

+1

我想知道如果您只是將小數傳遞給該方法會發生什麼。 – 2010-01-27 21:10:44

+1

十進制,Craig的意思是:0.010,0.5等 – 2010-01-27 21:17:29

+3

如果你看看超時源,你會看到它只是將參數傳遞給Kernel#sleep,它將採用十進制:「暫停當前線程的持續時間秒(可以是任何數字,包括具有小數秒的浮點數)。「所以傳遞一個小數應該可以工作。 – 2010-01-27 21:19:22

回答

9

只需使用一個十進制值超時。 n毫秒示例:

Timeout::timeout(n/1000.0) { sleep(100) }