Udostępnij za pośrednictwem


Async.Parallel<'T> — Metoda (F#)

Tworzy asynchronicznego obliczeń, który wykonuje wszystkie danego obliczenia asynchronicznych, początkowo queueing każdego z elementów i rozwidlenia/sprzężenia wzorek.

Ścieżka obszaru nazw/modułu: Microsoft.FSharp.Control

Zestaw: FSharp.Core (w FSharp.Core.dll)

// Signature:
static member Parallel : seq<Async<'T>> -> Async<'T []>

// Usage:
Async.Parallel (computations)

Parametry

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

    Sekwencja obliczeń distinct, aby być przetworzone.

Wartość zwracana

Obliczeń, która zwraca tablicę wartości z sekwencji wejściowych obliczenia.

Uwagi

Jeśli uda się wszystkie obliczenia dziecka, tablica wyników jest przekazywana do kontynuacji sukcesu.Jeśli wszystkie podrzędne obliczeń wzbudza wyjątek, następnie obliczenia ogólnej będzie wyzwalać wyjątek i Anuluj innych.Przy obliczaniu ogólnej odpowie na anulowanie podczas wykonywania obliczeń podrzędnych.Anulowane, obliczeń anuluje wszelkie pozostałe obliczenia dziecka, ale nadal będzie czekać na inne obliczenia podrzędnych zakończyć.

Przykład

Poniższy przykład kodu pokazuje, jak używać Async.Parallel uruchomić obliczeń asynchronicznie zapisywać pliki.

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

Informacje o wersji

F# Core wersji biblioteki

Obsługiwane: 2.0, 4.0, przenośne

Zobacz też

Informacje

Control.Async — Klasa (F#)

Microsoft.FSharp.Control — Przestrzeń nazw (F#)