Async.Sleep – metoda (F#)

Vytvoří asynchronní výpočtu, který bude pro daný čas spánku.Oprava pomocí Timer objektu.Operace neblokuje dobu čekání podprocesy operačního systému.

Cesta k oboru názvů nebo modul: Microsoft.FSharp.Control

Sestavení: FSharp.Core (v FSharp.Core.dll)

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

// Usage:
Async.Sleep (millisecondsDueTime)

Parametry

  • millisecondsDueTime
    Typ: int

    Počet milisekund do režimu spánku.

Výjimky

Výjimka

Podmínka

ArgumentOutOfRangeException

Vyvolá se, když je termín záporné a není neomezená.

Vrácená hodnota

Asynchronní výpočtu, který bude pro daný čas spánku.

Příklad

Následující příklad kódu ukazuje, jak použít Async.Sleep pro výpočty, které konkrétní dobu spustit simulaci.

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

Vzorový výstup

Výstup je interleaved, protože existuje více podprocesů, spuštěných zároveň.

  

Platformy

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

Informace o verzi

F# základní verze knihovny

Podporovány: 2.0, 4.0, přenosné

Viz také

Referenční dokumentace

Control.Async – třída (F#)

Microsoft.FSharp.Control – obor názvů (F#)