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: intPočet milisekund do režimu spánku.
Výjimky
Výjimka |
Podmínka |
---|---|
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é