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> optionFunció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: intTiempo 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. |