Udostępnij za pośrednictwem


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> option

    Funkcja, która zwraca None , jeśli wiadomość jest pominięta, lub Some , jeśli wiadomość jest przetwarzane i usuwane z kolejki.

  • timeout
    Typ: int

    Opcjonalne limit czasu w milisekundach.Domyślnie -1, która odpowiada Infinite.

Wyjątki

Wyjątek

Warunek

TimeoutException

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

Zobacz też

Informacje

Control.MailboxProcessor < "Msg > Klasa (F#)

Obszar nazw Microsoft.FSharp.Control (F#)