다음을 통해 공유


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#)

변경 기록

날짜

변경 내용

이유

2010년 8월

코드 예제를 추가했습니다.

향상된 기능 관련 정보