Método Async.sleep (F#)
Cria uma computação assíncrona, ficará suspenso por um determinado momento. Isso está programado usando um Timer objeto. A operação não bloqueará os segmentos de sistema operacional para a duração da espera.
Caminho do namespace/módulo: 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 em suspensão.
Exceções
Exceção |
Condição |
---|---|
Lançada quando a hora de conclusão é negativo e não infinito. |
Valor de retorno
Uma computação assíncrona ficará suspenso por um determinado momento.
Exemplo
O exemplo de código a seguir mostra como usar Async.Sleep para simular cálculos executados para durações específico.
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
Saída de exemplo
A saída é intercalada porque há vários threads em execução ao mesmo tempo.
Plataformas
O Windows 7, SP2 do Windows Vista, Windows XP SP3, Windows XP Professional x64 SP2, Windows Server 2008 R2, Windows Server 2008 SP2, Windows Server 2003 SP2
Informações sobre versão
O tempo de execução F#
Compatível com: 2.0, 4.0
Silverlight
Compatível com: 3
Consulte também
Referência
Microsoft.FSharp.Control Namespace (F#)
Histórico de alterações
Date |
History |
Motivo |
---|---|---|
Julho de 2010 |
Exemplo de código adicionado. |
Aprimoramento de informações. |