Async.Sleep, méthode (F#)
Crée un calcul asynchrone qui se met en état de veille durant la période indiquée. Cela est planifié à l'aide d'un objet Timer. Elle ne bloque pas les threads du système d'exploitation durant l'attente.
Espace de noms/Chemin du module : Microsoft.FSharp.Control
Assembly : FSharp.Core (in FSharp.Core.dll)
// Signature:
static member Sleep : int -> Async<unit>
// Usage:
Async.Sleep (millisecondsDueTime)
Paramètres
millisecondsDueTime
Type : intPériode de veille en millisecondes.
Exceptions
Exception |
Condition |
---|---|
Levée lorsque le délai d'attente est négatif et non infini. |
Valeur de retour
Calcul asynchrone qui se met en état de veille durant la période indiquée.
Exemple
L'exemple de code suivant montre comment utiliser Async.Sleep pour simuler des calculs qui s'exécutent sur des périodes spécifiques.
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
Résultat de l'exemple
La sortie est entrelacée, car il existe plusieurs threads qui s'exécutent en même temps.
Plateformes
Windows 7, Windows Vista SP2, Windows XP SP3, Windows XP x64 SP2, Windows Server 2008 R2, Windows Server 2008 SP2, Windows Server 2003 SP2
Informations de version
Runtime F#
Pris en charge dans : 2.0, 4.0
Silverlight
Prise en charge dans : 3
Voir aussi
Référence
Microsoft.FSharp.Control, espace de noms (F#)
Historique des modifications
Date |
Historique |
Motif |
---|---|---|
Juillet 2010 |
Ajout d'un exemple de code |
Améliorations apportées aux informations. |