MailboxProcessor.Scan <'Msg, T' > Método (F#)
Digitalizações para uma mensagem procurando pelas mensagens na ordem de chegada até que uma função fornecida retornar um valor de Some .Outras mensagens permanecem na fila.
Namespace/Module Path: Microsoft.FSharp.Control
Assembly: FSharp.Core (em FSharp.Core.dll)
// Signature:
member this.Scan : ('Msg -> Async<'T> option) * ?int -> Async<'T>
// Usage:
mailboxProcessor.Scan (scanner)
mailboxProcessor.Scan (scanner, timeout = timeout)
Parâmetros
scanner
Tipo: 'Msg ->Async<'T>opçãoUma função que retorna None se a mensagem deve ser tiver ignorado Some , ou se a mensagem deve ser processada e removido da fila.
timeout
Tipo: intUm tempo limite em milissegundos opcional.Padrão é -1 que corresponde a Infinite.
Exceções
Exceção |
Condição |
---|---|
Acionada quando o tempo limite é excedido. |
Valor de retorno
Uma computação assíncrono (objeto deAsync ) que scanner compilado fora da mensagem de leitura.
Comentários
Este método é para uso dentro do corpo de agente.Para cada agente, no máximo um leitor simultânea pode ser ativo, o que não mais do que uma chamada a Recebersimultânea, a TryReceive, a Scan ou a TryScan podem ser ativos.O corpo da função de scanner é bloqueado durante sua execução, mas o bloqueio será liberado antes da execução de fluxo de trabalho assíncrono.
Exemplo
O exemplo a seguir mostra como usar o método de Scan .Em esse código, agentes do processador de caixa postal gerenciam uma série de trabalho simulados que executam computador cria um e um resultado.
Uma sessão exemplo seguinte.
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