Метод 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 |
Уточнено поведение при истечении времени ожидания. |
Исправление ошибки содержимого. |