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 içinde)

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

// Usage:
Async.Parallel (computations)

Parametreler

  • computations
    Tür: seq<Async<'T>>

    Parallelized için ayrı hesaplamaları dizisi.

Dönüş Değeri

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

Açıklamalar

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österir Async.Parallel bir dizi için 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 7, Windows Vista SP2, Windows XP SP3, Windows XP x64 SP2, Windows Server 2008 R2, Windows Server 2008 SP2, Windows Server 2003 SP2

Sürüm Bilgisi

F# Çalışma Zamanı

Desteklenir: 2.0, 4.0

Silverlight

Desteklenir: 3

Ayrıca bkz.

Başvuru

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

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

Değişiklik Geçmişi

Tarih

Geçmiş

Nedeni

Ağustos 2010

Eklenen kod örneği.

Bilgi geliştirme.