Método Async.Sleep (F#)
Cria uma computação assíncrona que durma pelo tempo dados.Isso é agendada usando um objeto de Timer .A operação não bloqueará segmentos do sistema operacional para a duração de espera.
Namespace/Module Path: Microsoft.FSharp.Control
Assembly: FSharp.Core (em FSharp.Core.dll)
// Signature:
static member Sleep : int -> Async<unit>
// Usage:
Async.Sleep (millisecondsDueTime)
Parâmetros
millisecondsDueTime
Tipo: intO número de milissegundos a adormecida.
Exceções
Exceção |
Condição |
---|---|
Acionada quando a hora devem ser feitos são negativos e não infinitos. |
Valor de retorno
Uma computação assíncrona que durma pelo tempo dados.
Exemplo
O exemplo de código a seguir mostra como usar Async.Sleep para simular computações que executam para durações específicas.
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
A saída de exemplo
A saída é intercaladas, porque há vários segmentos de que executam ao mesmo tempo.
Plataformas
O windows 8, Windows 7, Windows Server 2012, Windows Server 2008 R2
Informações de Versão
Versões da biblioteca principal de F#
Suportado em: 2,0, 4,0, portáteis