MailboxProcessor.TryScan<'Msg,'T>-Methode (F#)
Aktualisiert: September 2010
Sucht nach einer Meldung, indem die Meldungen in der Reihenfolge ihres Eintreffens geprüft werden, bis eine angegebene Funktion einen Some-Wert zurückgibt. Andere Meldungen verbleiben in der Warteschlange.
Namespace/Modulpfad: Microsoft.FSharp.Control
Assembly: FSharp.Core (in FSharp.Core.dll)
// Signature:
member this.TryScan : ('Msg -> Async<'T> option) * ?int -> Async<'T option>
// Usage:
mailboxProcessor.TryScan (scanner)
mailboxProcessor.TryScan (scanner, timeout = timeout)
Parameter
scanner
Typ: 'Msg -> Async<'T> optionEine Funktion zur Rückgabe von None, wenn die Meldung übersprungen werden soll, oder Some, wenn die Meldung verarbeitet und aus der Warteschlange entfernt werden soll.
timeout
Typ: intEin optionales Timeout in Millisekunden. Wird standardmäßig auf -1 festgelegt, was Infinite() entspricht.
Rückgabewert
Eine asynchrone Berechnung (Async-Objekt), die vom scanner aus der gelesenen Meldung erstellt wurde.
Hinweise
Gibt None zurück, wenn ein Timeout angegeben und das Timeout überschritten wird. Diese Methode ist für die Verwendung im Coderumpf des Agents vorgesehen. Für jeden Agent darf maximal ein Reader gleichzeitig aktiv sein. Es darf also nur maximal ein Aufruf von Receive, TryReceive, Scan oder TryScan aktiv sein. Der Text der scanner-Funktion wird gesperrt während seiner Ausführung, die Sperre wird jedoch vor der Ausführung des asynchronen Workflows aufgehoben.
Plattformen
Windows 7, Windows Vista SP2, Windows XP SP3, Windows XP x64 SP2, Windows Server 2008 R2, Windows Server 2008 SP2, Windows Server 2003 SP2
Versionsinformationen
F#-Runtime
Unterstützt in: 2.0, 4.0
Silverlight
Unterstützt in: 3
Siehe auch
Weitere Ressourcen
Control.MailboxProcessor<'Msg>-Klasse (F#)
Microsoft.FSharp.Control-Namespace (F#)
Änderungsprotokoll
Datum |
Versionsgeschichte |
Grund |
---|---|---|
September 2010 |
Erläutert Multithreading-Verhalten. |
Informationsergänzung. |
April 2011 |
Erläutert das Timeoutverhalten. |
Korrektur inhaltlicher Fehler. |