2012-05-28 44 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