Compartir a través de


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

Busca un mensaje desplazándose por los mensajes según el orden de llegada hasta que una función dada devuelve un valor Some. Los demás mensajes permanecen en la cola.

Espacio de nombres/Ruta de acceso del módulo: Microsoft.FSharp.Control

Ensamblado: FSharp.Core (en 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> option

    Función que devuelve None si se debe omitir el mensaje o Some si se debe procesar el mensaje y quitarlo de la cola.

  • timeout
    Tipo: int

    Tiempo de espera opcional en milisegundos. Su valor predeterminado es -1, lo que equivale a Infinite().

Valor devuelto

Cálculo asincrónico (objeto Async) que scanner compiló a partir del mensaje leído.

Comentarios

Devuelve None si se especifica un tiempo de espera y se supera. Este método se usa en el cuerpo del agente. Por cada agente, sólo puede haber un lector simultáneo activo como máximo, por lo que no puede haber más de una llamada simultánea activa a Receive, TryReceive, Scan o TryScan. El cuerpo de la función scanner se bloquea durante su ejecución, pero dicho bloqueo se libera antes de la ejecución del flujo de trabajo asincrónico.

Plataformas

Windows 7, Windows Vista SP2, Windows XP SP3, Windows XP x64 SP2, Windows Server 2008 R2, Windows Server 2008 SP2, Windows Server 2003 SP2

Información de versiones

Runtime de F#

Se admite en las versiones: 2.0, 4.0

Silverlight

Se admite en la versión: 3

Vea también

Referencia

Control.MailboxProcessor<'Msg> (Clase de F#)

Microsoft.FSharp.Control (Espacio de nombres de F#)

Historial de cambios

Fecha

Historial

Motivo

Septiembre de 2010

Comportamiento multithreading clarificado.

Mejora de la información.

1 de abril de 2011

Clarifique el comportamiento de tiempo de espera.

Corrección de errores de contenido.