Metodo Async.Sleep (F#)
Crea un calcolo asincrono che rimarrà in sospensione per il tempo specificato.Questa operazione viene pianificata utilizzando un oggetto Timer.L'operazione non bloccherà i thread del sistema operativo per la durata dell'attesa.
Percorso spazio dei nomi/modulo: Microsoft.FSharp.Control
Assembly: FSharp.Core (in FSharp.Core.dll)
// Signature:
static member Sleep : int -> Async<unit>
// Usage:
Async.Sleep (millisecondsDueTime)
Parametri
millisecondsDueTime
Tipo: intNumero di millisecondi di sospensione.
Eccezioni
Eccezione |
Condizione |
---|---|
Generata quando il tempo di attesa è negativo e non infinito. |
Valore restituito
Calcolo asincrono che rimarrà in sospensione per il tempo specificato.
Esempio
Nell'esempio di codice riportato di seguito viene illustrato come utilizzare Async.Sleep per simulare i calcoli eseguiti per durate specifiche.
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
Esempio di output
L'output è interfogliato, poiché esistono più thread contemporaneamente in esecuzione.
Piattaforme
Windows 8, Windows 7, Windows Server 2012, Windows Server 2008 R2
Informazioni sulla versione
Versioni della libreria di base F#
Supportato in: 2,0, 4,0, portabile