Share 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 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#)

Lazy<T>

Calculs tardifs (F#)

Historique des modifications

Date

Historique

Motif

Mai 2010

Ajout d'un exemple de code

Améliorations apportées aux informations.