Compartilhar via


Async <'T> Método (F#)

Cria uma computação assíncrono que executa todas fornecidas computações assíncronas, colocando na fila inicialmente cada um como itens de trabalho e uso de uma bifurcação/se associam ao padrão.

Namespace/Module Path: Microsoft.FSharp.Control

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

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

// Usage:
Async.Parallel (computations)

Parâmetros

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

    Uma seqüência dos cálculos distintas a ser parallelized.

Valor de retorno

Uma computação que retorna uma matriz de valores de seqüência de cálculos de entrada.

Comentários

Se todos os cálculos filhos são bem-sucedidas, uma matriz de resultados é passada para continuar com êxito.Se qualquer computação filhos gera uma exceção, então a computação total irá acionar uma exceção, e cancela a outra.A computação total responderá para cancelar ao executar computações filhos.Se cancelado, a computação cancelará todos os cálculos filhos restantes mas ainda aguardará por outros cálculos filho para concluir.

Exemplo

O exemplo de código a seguir mostra como usar Async.Parallel para executar computações que gravam a um número de arquivos de forma assíncrona.

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

Plataformas

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

Informações de Versão

Versões da biblioteca principal de F#

Suportado em: 2,0, 4,0, portáteis

Consulte também

Referência

Classe Control.Async (F#)

Microsoft.FSharp.Control Namespace (F#)