共用方式為


Async.Parallel<'T> 方法 (F#)

更新:2010 年 8 月

建立非同步計算,這個計算會執行所有指定的非同步計算,一開始會將每個計算都佇列為工作項目並使用分岔/聯結模式。

命名空間/模組路徑: Microsoft.FSharp.Control

組件:FSharp.Core (在 FSharp.Core.dll 中)

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

// Usage:
Async.Parallel (computations)

參數

  • computations
    型別:seq<Async<'T>>

    要平行處理的一系列不同運算。

傳回值

計算,傳回輸入計算序列中的值陣列。

備註

如果所有子計算都成功,則會將結果陣列傳遞給成功接續。 如果任何子計算引發例外狀況,則整體計算會觸發例外狀況,並取消其他計算。 整體計算會在執行子計算時回應取消。 如果取消,則計算會取消任何其餘子計算,但仍會等待其他子計算完成。

範例

下列程式碼範例示範如何使用 Async.Parallel執行非同步寫入的檔案數目的運算

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

平台

Windows 7、Windows Vista SP2、Windows XP SP3、Windows XP x64 SP2、Windows Server 2008 R2、Windows Server 2008 SP2、Windows Server 2003 SP2

版本資訊

F# 執行階段

支援版本:2.0、4.0

Silverlight

支援版本:3

請參閱

參考

Control.Async 類別 (F#)

Microsoft.FSharp.Control 命名空間 (F#)

變更記錄

日期

History

原因

2010 年 8 月

加入程式碼範例。

資訊加強。