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 7, Windows Vista SP2, Windows XP SP3, Windows XP x64 SP2, Windows Server 2008 R2, Windows Server 2008 SP2, Windows Server 2003 SP2

Versionsinformationen

F#-Runtime

Unterstützt in: 2.0, 4.0

Silverlight

Unterstützt in: 3

Siehe auch

Weitere Ressourcen

Control.Async-Klasse (F#)

Microsoft.FSharp.Control-Namespace (F#)

Änderungsprotokoll

Datum

Versionsgeschichte

Grund

Juli 2010

Codebeispiel hinzugefügt.

Informationsergänzung.