更新:2010 年 8 月
建立非同步計算,這個計算會執行所有指定的非同步計算,一開始會將每個計算都佇列為工作項目並使用分岔/聯結模式。
命名空間/模組路徑: Microsoft.FSharp.Control
組件:FSharp.Core (在 FSharp.Core.dll 中)
// Signature:
static member Parallel : seq<Async<'T>> -> Async<'T []>
// Usage:
Async.Parallel (computations)
參數
傳回值
計算,傳回輸入計算序列中的值陣列。
備註
如果所有子計算都成功,則會將結果陣列傳遞給成功接續。 如果任何子計算引發例外狀況,則整體計算會觸發例外狀況,並取消其他計算。 整體計算會在執行子計算時回應取消。 如果取消,則計算會取消任何其餘子計算,但仍會等待其他子計算完成。
範例
下列程式碼範例示範如何使用 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
請參閱
參考
Microsoft.FSharp.Control 命名空間 (F#)
變更記錄
日期 |
History |
原因 |
|---|---|---|
|
2010 年 8 月 |
加入程式碼範例。 |
資訊加強。 |