Metodo MailboxProcessor.TryScan<'Msg,'T> (F#)
Cerca un messaggio analizzando i messaggi in ordine di arrivo finché una funzione fornita non restituisce un valore Some. Gli altri messaggi rimangono nella coda.
Percorso di spazio dei nomi/modulo: Microsoft.FSharp.Control
Assembly: FSharp.Core (in FSharp.Core.dll)
// Signature:
member this.TryScan : ('Msg -> Async<'T> option) * ?int -> Async<'T option>
// Usage:
mailboxProcessor.TryScan (scanner)
mailboxProcessor.TryScan (scanner, timeout = timeout)
Parametri
scanner
Tipo: 'Msg -> Async<'T> optionFunzione che restituisce None se il messaggio deve essere ignorato oppure Some se il messaggio deve essere elaborato e rimosso dalla coda.
timeout
Tipo: intTimeout facoltativo in millisecondi. L'impostazione predefinita è -1, che corrisponde a Infinite().
Valore restituito
Calcolo asincrono (oggetto asincrono) che scanner compilato al di fuori del messaggio di lettura.
Note
Se viene specificato un timeout, restituisce None se tale timeout viene superato. Questo metodo deve essere utilizzato all'interno del corpo dell'agente. Per ogni agente, può essere attivo al massimo un lettore simultaneo, pertanto non può essere attiva più di una chiamata simultanea ai metodi Receive, TryReceive, Scan o TryScan. Il corpo della funzione scanner viene bloccato durante l'esecuzione, ma il blocco viene rilasciato prima dell'esecuzione del flusso di lavoro asincrono.
Piattaforme
Windows 7, Windows Vista SP2, Windows XP SP3, Windows XP x64 SP2, Windows Server 2008 R2, Windows Server 2008 SP2, Windows Server 2003 SP2.
Informazioni sulla versione
F# Runtime
Supportato in: 2.0, 4.0
Silverlight
Supportato in: 3
Vedere anche
Riferimenti
Classe Control.MailboxProcessor<'Msg> (F#)
Spazio dei nomi Microsoft.FSharp.Control (F#)
Cronologia delle modifiche
Data |
Cronologia |
Motivo |
---|---|---|
Settembre 2010 |
Comportamento di multithreading chiarificato. |
Miglioramento delle informazioni. |
Aprile 2011 |
Chiarimento relativo al comportamento di timeout. |
Correzione di bug nel contenuto. |