Async.Parallel<'T> (Método de F#)
Crea un cálculo asincrónico que ejecuta todos los cálculos asincrónicos especificados, poniéndolos inicialmente en cola como elementos de trabajo y usando un modelo de bifurcación/combinación.
Espacio de nombres/Ruta de acceso del módulo: Microsoft.FSharp.Control
Ensamblado: FSharp.Core (en FSharp.Core.dll)
// Signature:
static member Parallel : seq<Async<'T>> -> Async<'T []>
// Usage:
Async.Parallel (computations)
Parámetros
Valor devuelto
Cálculo que devuelve una matriz de valores a partir de la secuencia de cálculos de entrada.
Comentarios
Si todos los cálculos secundarios se realizan correctamente, se pasa una matriz de resultados a la continuación correcta. Si algún cálculo secundario produce una excepción, el cálculo global producirá una excepción y cancelará los demás cálculos. El cálculo global responderá a la cancelación ejecutando los cálculos secundarios. Si se cancela, el cálculo cancelará los cálculos secundarios restantes pero esperará hasta que se completen los demás cálculos secundarios.
Ejemplo
En el ejemplo de código siguiente se muestra cómo usar Async.Parallel para ejecutar cálculos que escriben en diversos archivos de forma asincrónica.
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
Windows 8, Windows 7, Windows Server 2012, Windows Server 2008 R2
Información de versiones
Versiones de la biblioteca básica de F#
Se admite en: 2.0, 4.0, portables