Questo articolo è stato tradotto automaticamente. Per visualizzare l'articolo in inglese, selezionare la casella di controllo Inglese. È possibile anche visualizzare il testo inglese in una finestra popup posizionando il puntatore del mouse sopra il testo.
Traduzione
Inglese

Metodo Async.Parallel<'T> (F#)

Crea un oggetto di calcolo asincrono che esegue tutti i calcoli asincroni specificati, accodando inizialmente ciascun calcolo come elemento di lavoro e utilizzando un modello fork/join.

Percorso di spazio dei nomi/modulo: Microsoft.FSharp.Control

Assembly: FSharp.Core (in FSharp.Core.dll)

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

// Usage:
Async.Parallel (computations)

computations

Tipo: seq<Async<'T>>

Sequenza di calcoli distinti da parallelizzare.

Calcolo che restituisce una matrice di valori dalla sequenza di calcoli ricevuta in input.

Se tutti i calcoli figlio vengono completati, una matrice di risultati verrà passata al codice di continuazione. Se un qualsiasi calcolo figlio genera un'eccezione, il calcolo globale genererà un'eccezione e anNullerà gli altri calcoli. Il calcolo globale risponderà alle richieste di anNullamento durante l'esecuzione dei calcoli figlio. Se anNullato, il calcolo anNullerà tutti i calcoli figlio restanti, ma attenderà il completamento degli altri calcoli figlio.

Nell'esempio di codice riportato di seguito viene illustrato come utilizzare Async.Parallel per eseguire calcoli che scrivano in modo asincrono in diversi file.


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

Versioni della libreria di base F#

Supportato in: 2,0, 4,0, portabile

Aggiunte alla community

AGGIUNGI
Mostra: