Async.Parallel<'T>-Methode (F#)
Aktualisiert: August 2010
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 7, Windows Vista SP2, Windows XP SP3, Windows XP x64 SP2, Windows Server 2008 R2, Windows Server 2008 SP2, Windows Server 2003 SP2
Versionsinformationen
F#-Runtime
Unterstützt in: 2.0, 4.0
Silverlight
Unterstützt in: 3
Siehe auch
Weitere Ressourcen
Microsoft.FSharp.Control-Namespace (F#)
Änderungsprotokoll
Datum |
Versionsgeschichte |
Grund |
---|---|---|
August 2010 |
Codebeispiel hinzugefügt. |
Informationsergänzung. |