MailboxProcessor.TryScan<'Msg,'T>, méthode (F#)
Recherche un message en consultant les messages dans l'ordre d'arrivée jusqu'à ce qu'une fonction fournie retourne une valeur Some. Les autres messages demeurent dans la file d'attente.
Espace de noms/Chemin du module : 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)
Paramètres
scanner
Type : 'Msg -> Async<'T> optionFonction qui retourne None si le message doit être ignoré ou Some si le message doit être traité et supprimé de la file d'attente.
timeout
Type : intDélai d'attente facultatif en millisecondes. -1 est la valeur par défaut, qui correspond à Infinite().
Valeur de retour
Un calcul asynchrone (objet Async) qui scanner a créé à partir du message lu.
Notes
Retourne None si un délai d'attente est donné et qu'il a été dépassé. Cette méthode doit être utilisée dans le corps de l'agent. Pour chaque agent, un lecteur simultané maximum peut être actif, par conséquent un appel simultané au maximum pour Receive, TryReceive, Scan ou TryScan peut être actif. Le corps de la fonction scanner est verrouillé pendant son exécution, mais le verrou est libéré avant l'exécution du flux de travail asynchrone.
Plateformes
Windows 7, Windows Vista SP2, Windows XP SP3, Windows XP x64 SP2, Windows Server 2008 R2, Windows Server 2008 SP2, Windows Server 2003 SP2
Informations de version
Runtime F#
Pris en charge dans : 2.0, 4.0
Silverlight
Prise en charge dans : 3
Voir aussi
Référence
Control.MailboxProcessor<'Msg>, classe (F#)
Microsoft.FSharp.Control, espace de noms (F#)
Historique des modifications
Date |
Historique |
Motif |
---|---|---|
Septembre 2010 |
Comportement de multithreading clarifié. |
Améliorations apportées aux informations. |
Avril 2011 |
A clarifié le comportement de délai d'attente. |
Résolution des bogues de contenu. |