Async.Parallel<'T> 方法 (F#)
创建一个执行所有给定异步计算的异步计算,它先将每个异步计算作为工作项进行排队,并使用分离/连接模式。
命名空间/模块路径: 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 8,Windows 7,Windows server 2012中,Windows server 2008 R2
版本信息
F#核心库版本
支持:2.0,4.0,可移植