Freigeben über


Async.Parallel<'T>-Methode (F#)

Erstellt eine asynchrone Berechnung, die alle angegebenen asynchronen Berechnungen ausführt; dabei werden die einzelnen Berechnungen zunächst als Arbeitsaufgaben in einer Warteschlange abgelegt, und es wird ein Verzweigungs-/Verknüpfungsmuster verwendet.

Namespace/Modulpfad: Microsoft.FSharp.Control

Assembly: FSharp.Core (in FSharp.Core.dll)

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

// Usage:
Async.Parallel (computations)

Parameter

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

    Eine Sequenz unterschiedlicher Berechnungen, die parallelisiert werden sollen.

Rückgabewert

Eine Berechnung, die ein Array von Werten aus der Sequenz von Eingabeberechnungen zurückgibt.

Hinweise

Wenn alle untergeordneten Berechnungen erfolgreich sind, wird ein Array von Ergebnissen an die Erfolgsfortsetzung übergeben.Wenn eine untergeordnete Berechnung eine Ausnahme auslöst, löst die Gesamtberechnung eine Ausnahme aus, und die anderen Berechnungen werden abgebrochen.Beim Ausführen der untergeordneten Berechnungen reagiert die Gesamtberechnung auf einen Abbruch.Bei einem Abbruch werden alle verbleibenden untergeordneten Berechnungen von der Berechnung abgebrochen; dabei wird jedoch abgewartet, bis die anderen untergeordneten Berechnungen abgeschlossen sind.

Beispiel

Im folgenden Codebeispiel wird veranschaulicht, wie mit Async.Parallel Berechnungen ausgeführt werden, die asynchron in mehrere Dateien schreiben.

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

Plattformen

Windows 8, Windows 7, Windows Server 2012, Windows Server 2008 R2

Versionsinformationen

F#-Kern-Bibliotheks-Versionen

Unterstützt in: 2,0, 4,0, portablen

Siehe auch

Referenz

Control.Async-Klasse (F#)

Microsoft.FSharp.Control-Namespace (F#)