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 di 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
Output di esempio
L'output è interfogliato, poiché esistono più thread contemporaneamente in esecuzione.
Piattaforme
Windows 7, Windows Vista SP2, Windows XP SP3, Windows XP x64 SP2, Windows Server 2008 R2, Windows Server 2008 SP2, Windows Server 2003 SP2.
Informazioni sulla versione
F# Runtime
Supportato in: 2.0, 4.0
Silverlight
Supportato in: 3
Vedere anche
Riferimenti
Spazio dei nomi Microsoft.FSharp.Control (F#)
Cronologia delle modifiche
Data |
Cronologia |
Motivo |
---|---|---|
Luglio 2010 |
Aggiunto esempio di codice. |
Miglioramento delle informazioni. |