2010-01-27 15 views
5

W Ruby, muszę przerwać wykonywanie bloku kodu po n milli sekund. Wiem, że biblioteka Ruby Timeout obsługuje limity czasu w sekund:Limit czasu Ruby blok kodu po n * milli * sekundach

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

to jest możliwe?

+1

Zastanawiam się, co by się stało, gdybyś po prostu podał dziesiętny w tej metodzie. –

+1

Po przecinku, Craig oznacza: 0.010, 0.5, itd. –

+3

Jeśli spojrzysz na źródło do limitu czasu zobaczysz, że po prostu przekazuje argument do Kernel # sleep, który będzie zajmował dziesiętne miejsce: "Zawiesza bieżący wątek na czas trwania sekund (może to być dowolna liczba, w tym liczba zmiennoprzecinkowa z ułamkowymi sekundami). " Zatem podanie go w postaci dziesiętnej powinno zadziałać. –

Odpowiedz

9

Po prostu użyj wartości dziesiętnej dla limitu czasu. Przykład n milisekund:

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