2010-01-27 18 views
5

Trong Ruby, tôi cần hết thời gian thực hiện một khối mã sau n milli giây. Tôi biết rằng các thư viện Ruby Timeout hỗ trợ timeout trong giây:Ruby hết thời gian chờ một khối mã sau n * milli * giây

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

Đây có phải là có thể?

+1

Tôi tự hỏi điều gì sẽ xảy ra nếu bạn chỉ cần chuyển một số thập phân vào phương thức đó. –

+1

Theo số thập phân, Craig có nghĩa là: 0.010, 0.5, v.v. –

+3

Nếu bạn nhìn vào nguồn để hết thời gian, bạn sẽ thấy rằng nó chuyển đối số cho ngủ Kernel #, sẽ lấy một số thập phân: "Đình chỉ chuỗi hiện tại cho thời lượng giây (có thể là bất kỳ số nào, bao gồm một phao có số giây phân số). " Vì vậy, đi qua nó một thập phân nên làm việc. –

Trả lời

9

Chỉ cần sử dụng giá trị thập phân cho thời gian chờ. Ví dụ về n mili giây:

Timeout::timeout(n/1000.0) { sleep(100) } 
Các vấn đề liên quan