Поделиться через


Метод MailboxProcessor.TryScan<'Msg,'T> (F#)

Сканирует сообщение, выполняя поиск по сообщениям в порядке поступления до тех пор, пока предоставленная функция не вернет значение Some. Остальные сообщения остаются в очереди.

Пространство имен/путь к модулю: Microsoft.FSharp.Control

Сборка: FSharp.Core (в FSharp.Core.dll)

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

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

Параметры

  • scanner
    Тип: 'Msg -> Async<'T> option

    Функция, возвращающая значение None, если сообщение необходимо пропустить, или значение Some, если сообщение следует обработать и удалить из очереди.

  • timeout
    Тип: int

    Необязательное время ожидания в миллисекундах. По умолчанию устанавливается значение -1, что соответствует значению Infinite().

Возвращаемое значение

Асинхронное вычисление (объект Async), созданное функцией scanner из прочитанного сообщения.

Заметки

Возвращает значение None, если время ожидания задано и превышено. Этот метод предназначен для использования в теле агента. Для каждого агента в каждый момент времени может быть активно только одно средство чтения, поэтому активным может быть только один вызов Receive, TryReceive, Scan или TryScan. Тело функции scanner заблокирован во время выполнения, но блокировка освобождается до выполнения асинхронного рабочего процесса.

Платформы

Windows 7, Windows Vista с пакетом обновления 2 (SP2), Windows XP с пакетом обновления 3 (SP3), Windows XP x64 с пакетом обновления 2 (SP2), Windows Server 2008 R2, Windows Server 2008 с пакетом обновления 2 (SP2), Windows Server 2003 с пакетом обновления 2 (SP2)

Сведения о версии

Среда выполнения F#

Поддерживается в версиях 2.0, 4.0

Silverlight

Поддерживается в версии 3

См. также

Ссылки

Класс Control.MailboxProcessor<'Msg> (F#)

Пространство имен Microsoft.FSharp.Control (F#)

Журнал изменений

Дата

Журнал

Причина

Сентябрь 2010

Уточнено поведение многопоточности.

Улучшение информации.

Апрель 2011

Уточнено поведение при истечении времени ожидания.

Исправление ошибки содержимого.