Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
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