Compartilhar via


MailboxProcessor.TryScan <'Msg, T' > Método (F#)

Procura uma mensagem, examinando as mensagens na ordem de chegada, até que uma função fornecida retorna um Some valor. Outras mensagens permanecem na fila.

Caminho do namespace/módulo: Microsoft.FSharp.Control

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

// Signature:
member this.TryScan : ('Msg -> Async<'T> option) * ?int -> Async<'T option>

// Usage:
mailboxProcessor.TryScan (scanner)
mailboxProcessor.TryScan (scanner, timeout = timeout)

Parâmetros

  • scanner
    Tipo: 'Msg -> Async<'T> opção

    Uma função que retorna None se a mensagem for seja ignorada, ou Some se a mensagem deve ser processado e removido da fila.

  • timeout
    Tipo: int

    Um opcional de tempo limite em milissegundos. Padrão é -1, o que corresponde a Infinite().

Valor de retorno

Uma computação assíncrona (Async objeto) que scanner criado a partir da mensagem de leitura.

Comentários

Este método é para uso dentro do corpo do agente. Para cada agente, no máximo um leitor simultâneo pode estar ativo, portanto, não mais de uma chamada simultânea para receber, TryReceive, Digitalizar ou TryScan pode ser ativo. O corpo da scanner função é bloqueada durante sua execução, mas o bloqueio será liberado antes da execução do fluxo de trabalho assíncrono.

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

Control.MailboxProcessor <'Msg > Classe (F#)

Microsoft.FSharp.Control Namespace (F#)