Lazy.Force<'T>, méthode d'extension (F#)
Force l'exécution de cette valeur et retourne son résultat. Identique à Value. L'exclusion mutuelle est utilisée pour empêcher d'autres threads de calculer également la valeur.
Espace de noms/Chemin du module : Microsoft.FSharp.Control.LazyExtensions
Assembly : FSharp.Core (in FSharp.Core.dll)
// Signature:
type System.Lazy with
member Force : unit -> 'T
// Usage:
lazy.Force ()
Valeur de retour
Valeur de l'objet Lazy.
Exemple
Le code suivant illustre l'utilisation de la méthode d'extension Force.
let lazyFactorial n = Lazy.Create (fun () ->
let rec factorial n =
match n with
| 0 | 1 -> 1
| n -> n * factorial (n - 1)
factorial n)
let printLazy (lazyVal:Lazy<int>) =
if (lazyVal.IsValueCreated) then
printfn "Retrieving stored value: %d" (lazyVal.Value)
else
printfn "Computing value: %d" (lazyVal.Force())
let lazyVal1 = lazyFactorial 12
let lazyVal2 = lazyFactorial 10
lazyVal1.Force() |> ignore
printLazy lazyVal1
printLazy lazyVal2
La sortie indique que lorsque Force est appelé pour créer la valeur pour lazyVal1, la valeur calculée est extraite en imprimant les valeurs.
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#
Prise en charge dans : 2.0
Silverlight
Prise en charge dans : 3
Voir aussi
Référence
Control.LazyExtensions, module (F#)
Historique des modifications
Date |
Historique |
Motif |
---|---|---|
Mai 2010 |
Ajout d'un exemple de code |
Améliorations apportées aux informations. |