2012-05-28 43 views

回答

13

此经典的Unix解决方案是使用的select()没有文件描述符:

let minisleep (sec: float) = 
    ignore (Unix.select [] [] [] sec) 
+0

并且不要忘记可能会中断select的信号 – ygrek

+0

当我尝试这样做时,它在Unix.Unix_error(11,“select”,“”)中失败。 –

+0

它适用于我,我一定要尝试一下。我在Mac OS X 10.7上。 –

12

Thread.delay函数将线程暂停给定的秒数,但它需要一个浮点数,允许您暂停线程的时间少于一秒。

4

Unix模块

val sleepf : float -> unit 

停止执行用于给定秒数。像睡眠一样,但支持秒数的秒数。

+2

请注意,此功能已添加到4.03.0。先前版本的OCaml无法访问此特定功能。 – hcarty