다음을 통해 공유


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)

매개 변수

  • 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 Windows 서버 2012, Windows Server 2008 R2, Windows 7, 8

버전 정보

F# 코어 라이브러리 버전

지원: 2.0, 4.0, 노트북

참고 항목

참조

Control.Async 클래스(F#)

Microsoft.FSharp.Control 네임스페이스(F#)