Aracılığıyla paylaş


MailboxProcessor.Scan<'Msg,'T> Yöntemi (F#)

Bir iletinin geliş sırasına iletiler yoluyla sağlanan işlev dönünceye kadar bakarak tarar bir Some değeri. Diğer iletiler sırada kalır.

Ad alanı/modül yolu: Microsoft.FSharp.Control

Derleme: FSharp.Core (FSharp.Core.dll),

// Signature:
member this.Scan : ('Msg -> Async<'T> option) * ?int -> Async<'T>

// Usage:
mailboxProcessor.Scan (scanner)
mailboxProcessor.Scan (scanner, timeout = timeout)

Parametreler

  • scanner
    Type: 'Msg -> Async<'T> option

    Döndüren bir işlev None ileti atlanması için ise ya da Some ileti işlenir ve sıradan kaldırılan ise.

  • timeout
    Türü: int

    İsteğe bağlı milisaniye cinsinden zaman aşımı. Infinite'e karşılık gelir ve varsayılan olarak -1'dir.

Özel Durumlar

Özel Durum

Koşul

TimeoutException

Zaman aşımı aşıldığında oluşturulur.

Dönüş Değeri

Zaman uyumsuz bir hesaplama (zaman uyumsuz nesnesi), scanner okuma iletinin yerleşik.

Notlar

Bu yöntem aracının gövdesi içinde kullanılır. Her aracı için en fazla eşzamanlı bir okuyucu etkin olabilir bu nedenle birden fazla eş zamanlı çağrı Al, TryReceive, Scan veya TryScan etkin olabilir. Gövdesi scanner işlevi yürütmesi sırasında kilitli ancak kilit zaman uyumsuz iş akışının yürütülmesini önce serbest bırakılmış.

Örnek

Aşağıdaki örnek, Scan metodunun nasıl kullanılacağını göstermektedir. Bu kodda, çalıştırın ve bir sonuç hesaplamak benzetimi yapılan işlerin bir dizi posta kutusu işlemci aracılarını yönetebilir.

Örnek oturumunda aşağıdaki gibidir.

  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  

Platformlar

Windows 8, Windows 7, Windows Server 2012, Windows Server 2008 R2

Sürüm Bilgisi

F# Çekirdek Kitaplığı sürümleri

Desteklenen: 2.0, 4.0, Portable

Ayrıca bkz.

Başvuru

Control.MailboxProcessor<'Msg> Sınıfı (F#)

Microsoft.FSharp.Control İsim Uzayı (F#)