2010-01-27 8 views
5

In Ruby, muss ich die Ausführung eines Blocks von Code nach n Milli Sekunden Zeit. Ich weiß, dass die Ruby-Timeout Bibliothek Timeouts in Sekunden unterstützt:Ruby Timeout einen Block von Code nach n * Milli * Sekunden

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

Ist das möglich?

+1

Ich frage mich, was passieren würde, wenn Sie einfach eine Dezimalzahl in diese Methode übergeben. –

+1

Nach dem Komma bedeutet Craig: 0.010, 0.5, etc. –

+3

Wenn Sie die Quelle auf Timeout sehen, sehen Sie, dass es das Argument nur an Kernel # sleep übergibt, was eine Dezimalzahl benötigt: "Hält den aktuellen Thread für die Dauer an Sekunden (das kann eine beliebige Zahl sein, einschließlich eines Floats mit Sekundenbruchteilen). " Es sollte also funktionieren, wenn Sie eine Dezimalzahl übergeben. –

Antwort

9

Verwenden Sie einfach einen Dezimalwert für das Timeout. Beispiel für n Millisekunden:

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