MailboxProcessor.Scan < "Msg,'T > Metoda (F#)
Skanowanie wiadomości, przeglądając wiadomości w kolejności przybycia, dopóki nie przewidziano funkcja zwraca Some wartości.Inne wiadomości pozostają w kolejce.
Ścieżka obszaru nazw/modułu: Microsoft.FSharp.Control
Zestaw: FSharp.Core (w FSharp.Core.dll)
// Signature:
member this.Scan : ('Msg -> Async<'T> option) * ?int -> Async<'T>
// Usage:
mailboxProcessor.Scan (scanner)
mailboxProcessor.Scan (scanner, timeout = timeout)
Parametry
scanner
Type: 'Msg -> Async<'T> optionFunkcja, która zwraca None , jeśli wiadomość jest pominięta, lub Some , jeśli wiadomość jest przetwarzane i usuwane z kolejki.
timeout
Typ: intOpcjonalne limit czasu w milisekundach.Domyślnie -1, która odpowiada Infinite.
Wyjątki
Wyjątek |
Warunek |
---|---|
Generowany po przekroczeniu limitu czasu. |
Wartość zwracana
Asynchroniczne obliczeń (Async obiektu), scanner zbudowany off odczytu wiadomości.
Uwagi
Ta metoda jest do użytku w ramach organu agenta.Dla każdego agenta może być aktywny, co najwyżej jeden czytnik równoczesnych tak nie więcej niż jedno wywołanie równoczesnych odbioru, TryReceive, Scan lub TryScan może być aktywne.Treści scanner funkcja jest zablokowana podczas jej wykonywania, ale blokada jest zwalniana przed realizacją asynchronicznego przepływu pracy.
Przykład
Poniższy przykład pokazuje, jak używać Scan metody.Ten kod serii symulowane miejsc pracy i obliczyć wynik zarządzania agentów procesora skrzynki pocztowej.
Następujące próbki sesji.
Platformy
Windows 8, Windows 7, Windows Server 2012 Windows Server 2008 R2
Informacje o wersji
F# Core wersji biblioteki
Obsługiwane: 2.0, 4.0, przenośne