Compartilhar via


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

Cria uma computação assíncrona que executa todas as computações de assíncronas determinadas inicialmente queueing cada medida usando uma padronagem de bifurcação/junção e itens de trabalho.

Caminho do namespace/módulo: 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<assíncrono<'T>>

    Uma seqüência de computações distintas para ser colocado em paralelo.

Valor de retorno

Um cálculo que retorna uma matriz de valores da seqüência de computações de entrada.

Comentários

Se todos os cálculos de filho tiver êxito, uma matriz de resultados é passada para a continuação do sucesso. Se qualquer computação filho gera uma exceção, em seguida, a computação geral irá disparar uma exceção e cancelar os outros. A computação geral responderá ao cancelamento durante a execução de cálculos de filho. Se cancelado, a computação irá cancelar qualquer computações restantes do filho, mas ainda irá aguardar outros cálculos de filho concluir.

Exemplo

O exemplo de código a seguir mostra como usar Async.Parallel para executar cálculos gravar para 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 7, SP2 do Windows Vista, Windows XP SP3, Windows XP Professional x64 SP2, Windows Server 2008 R2, Windows Server 2008 SP2, Windows Server 2003 SP2

Informações sobre versão

O tempo de execução F#

Compatível com: 2.0, 4.0

Silverlight

Compatível com: 3

Consulte também

Referência

Classe Control.Async (F#)

Microsoft.FSharp.Control Namespace (F#)

Histórico de alterações

Date

History

Motivo

Agosto de 2010

Exemplo de código adicionado.

Aprimoramento de informações.