Sdílet prostřednictvím


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

  • computations
    Type: seq<Async<'T>>

    Pořadí odlišné výpočty chcete být parallelized.

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é

Viz také

Referenční dokumentace

Třída Control.Async (F#)

Obor názvů Microsoft.FSharp.Control (F#)