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 8, Windows 7, Windows Server 2012, Windows Server 2008 R2
Informations de version
Versions de bibliothèque principale F#
Prise en charge dans : 2.0