Async <'T> Método (F#)
Cria uma computação assíncrono que executa todas fornecidas computações assíncronas, colocando na fila inicialmente cada um como itens de trabalho e uso de uma bifurcação/se associam ao padrão.
Namespace/Module Path: Microsoft.FSharp.Control
Assembly: FSharp.Core (em FSharp.Core.dll)
// Signature:
static member Parallel : seq<Async<'T>> -> Async<'T []>
// Usage:
Async.Parallel (computations)
Parâmetros
Valor de retorno
Uma computação que retorna uma matriz de valores de seqüência de cálculos de entrada.
Comentários
Se todos os cálculos filhos são bem-sucedidas, uma matriz de resultados é passada para continuar com êxito.Se qualquer computação filhos gera uma exceção, então a computação total irá acionar uma exceção, e cancela a outra.A computação total responderá para cancelar ao executar computações filhos.Se cancelado, a computação cancelará todos os cálculos filhos restantes mas ainda aguardará por outros cálculos filho para concluir.
Exemplo
O exemplo de código a seguir mostra como usar Async.Parallel para executar computações que gravam a um número de arquivos de forma assíncrona.
let bufferData (number:int) =
[| for count in 1 .. 1000 -> byte (count % 256) |]
|> Array.permute (fun index -> index)
let writeFiles bufferData =
Seq.init 1000 (fun num -> bufferData num)
|> Seq.mapi (fun num value ->
async {
let fileName = "file" + num.ToString() + ".dat"
use outputFile = System.IO.File.Create(fileName)
do! outputFile.AsyncWrite(value)
})
|> Async.Parallel
|> Async.Ignore
writeFiles bufferData
|> Async.Start
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