2012-05-28 12 views

Antwort

13

Die klassische Unix-Lösung hierfür ist, wählen Sie() zu verwenden, ohne Filedeskriptoren:

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

und vergessen Sie nicht über Signale, die – ygrek

+0

wählen unterbrechen kann, wenn ich das versucht, scheiterte es mit Unix.Unix_error (11, „wählen Sie“, „“). –

+0

Es funktioniert für mich, ich stellte sicher, es auszuprobieren. Ich bin auf Mac OS X 10.7. –

12

Die Funktion Thread.delay pausiert den Thread für die angegebene Anzahl von Sekunden, aber es dauert ein float, so dass Sie den Thread für weniger als eine Sekunde pausieren können.

4

von Unix Modul

val sleepf : float -> unit 

Stoppen der Ausführung für die angegebene Anzahl von Sekunden. Wie Schlaf, aber Sekundenbruchteile werden unterstützt.

+2

Beachten Sie, dass diese Funktion in 4.03.0 hinzugefügt wurde. Frühere Versionen von OCaml haben keinen Zugriff auf diese spezielle Funktion. – hcarty