Async <'T> Método (F#)
Cria uma computação assíncrona que executa todas as computações de assíncronas determinadas inicialmente queueing cada medida usando uma padronagem de bifurcação/junção e itens de trabalho.
Caminho do namespace/módulo: 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
computations
Tipo: SEQ<assíncrono<'T>>Uma seqüência de computações distintas para ser colocado em paralelo.
Valor de retorno
Um cálculo que retorna uma matriz de valores da seqüência de computações de entrada.
Comentários
Se todos os cálculos de filho tiver êxito, uma matriz de resultados é passada para a continuação do sucesso. Se qualquer computação filho gera uma exceção, em seguida, a computação geral irá disparar uma exceção e cancelar os outros. A computação geral responderá ao cancelamento durante a execução de cálculos de filho. Se cancelado, a computação irá cancelar qualquer computações restantes do filho, mas ainda irá aguardar outros cálculos de filho concluir.
Exemplo
O exemplo de código a seguir mostra como usar Async.Parallel para executar cálculos gravar para 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 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 |
---|---|---|
Agosto de 2010 |
Exemplo de código adicionado. |
Aprimoramento de informações. |