Aracılığıyla paylaş


Async.Parallel<'T> Yöntemi (F#)

Verilen tüm zaman uyumsuz hesapları, başlangıçta herbirini iş öğeleri gibi sıralayarak ve çatal/birleştir desenini kullanarak yürüten zaman uyumsuz bir hesaplama oluşturur.

Ad alanı/modül yolu: Microsoft.FSharp.Control

Derleme: FSharp.Core (FSharp.Core.dll),

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

// Usage:
Async.Parallel (computations)

Parametreler

  • computations
    Type: seq<Async<'T>>

    Parallelized için ayrı hesaplamaların sırası.

Dönüş Değeri

Giriş hesaplamaları dizisinin sonuç değerlerini dizi olarak döndüren hesaplama.

Notlar

Tüm alt hesaplamalar başarılı olursa, sonuçlar dizisi bir sonraki hesaplamaya geçirilir. Eğer alt hesaplamalardan birinde özel durum harekete geçirilirse, genel hesaplamada bir özel durum harekete geçer ve diğerlerini iptal eder. Genel hesaplama, alt hesaplamaları yürütürken iptal biilgisine yanıt verir. İptal edildiğinde, hesaplama kalan alt hesaplamaları iptal eder, ancak yine de diğer alt hesaplamaların tamamlanmasını bekler.

Örnek

Aşağıdaki kod örneği nasıl kullanılacağını gösteren Async.Parallel dosyaları çok sayıda zaman uyumsuz olarak yaz hesaplamaları çalıştırılacak.

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

Platformlar

Windows 8, Windows 7, Windows Server 2012, Windows Server 2008 R2

Sürüm Bilgisi

F# Çekirdek Kitaplığı sürümleri

Desteklenen: 2.0, 4.0, Portable

Ayrıca bkz.

Başvuru

Control.Async Sınıfı (F#)

Microsoft.FSharp.Control İsim Uzayı (F#)