Partager via


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

Voir aussi

Référence

Control.LazyExtensions, module (F#)

Lazy

Calculs tardifs (F#)