Freigeben über


Async.Sleep-Methode (F#)

Erstellt eine asynchrone Berechnung, die während des angegebenen Zeitraums ruht. Dies wird mithilfe eines Timer-Objekts geplant. Betriebssystemthreads werden von diesem Vorgang während der Wartezeit nicht blockiert.

Namespace/Modulpfad: Microsoft.FSharp.Control

Assembly: FSharp.Core (in FSharp.Core.dll)

// Signature:
static member Sleep : int -> Async<unit>

// Usage:
Async.Sleep (millisecondsDueTime)

Parameter

  • millisecondsDueTime
    Typ: int

    Die Anzahl der Millisekunden für den Standbymodus.

Ausnahmen

Ausnahme

Bedingung

ArgumentOutOfRangeException

Wird ausgelöst, wenn die Vorlaufzeit negativ und nicht unendlich ist.

Rückgabewert

Eine asynchrone Berechnung, die während des angegebenen Zeitraums ruht.

Beispiel

Im folgenden Codebeispiel wird veranschaulicht, wie mit Async.Sleep Berechnungen simuliert werden, die für bestimmte Zeitspannen ausgeführt werden.

let simulatedJob id time =
    let timestamp() = System.DateTime.Now.Ticks
    async {
       printfn "Job %d start" id
       let timestamp1 = timestamp()
       do! Async.Sleep(time * 1000)
       let timestamp2 = timestamp()
       let timespan = System.TimeSpan(timestamp2 - timestamp1)
       printfn "Job %d end %s" id (timespan.ToString("G"))
    }

[ 1 .. 10]
|> List.mapi (fun index time -> simulatedJob index time)
|> Async.Parallel
|> Async.RunSynchronously
|> ignore

Beispielausgabe

Die Ausgabe überlappt sich, da mehrere Threads gleichzeitig ausgeführt werden.

  

Plattformen

Windows 8, Windows 7, Windows Server 2012, Windows Server 2008 R2

Versionsinformationen

F#-Kern-Bibliotheks-Versionen

Unterstützt in: 2,0, 4,0, portablen

Siehe auch

Referenz

Control.Async-Klasse (F#)

Microsoft.FSharp.Control-Namespace (F#)