Async.Parallel<'T> – metoda (F#)
Vytvoří asynchronní výpočtu, který provede všechny dané asynchronní výpočty, původně přepojování jednotlivých položek a rozvětvení/spojení vzorek práci.
Cesta k oboru názvů nebo modul: Microsoft.FSharp.Control
Sestavení: FSharp.Core (v FSharp.Core.dll)
// Signature:
static member Parallel : seq<Async<'T>> -> Async<'T []>
// Usage:
Async.Parallel (computations)
Parametry
Vrácená hodnota
Výpočet, který vrací matici hodnot ze sekvence vstupní výpočty.
Poznámky
Jestliže všechny podřízené výpočty úspěšně, je předána pokračování úspěšné matici výsledků.Pokud žádné podřízené výpočtu vyvolá výjimku, pak výpočtu celkové bude spuštění výjimky a ostatní zrušit.Výpočet celkové odpoví na zrušení při provádění podřízené výpočty.Pokud zrušena, výpočtu zruší všechny zbývající podřízené výpočty, ale stále bude čekat jiné podřízené výpočty k dokončení.
Příklad
Následující příklad kódu ukazuje, jak použít Async.Parallel spustit výpočty k zápisu do souborů asynchronně.
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
Platformy
Windows 8, Windows 7, Windows Server 2012 Windows Server 2008 R2
Informace o verzi
F# základní verze knihovny
Podporovány: 2.0, 4.0, přenosné