Freigeben über


Lazy.Force<'T>-Erweiterungsmethode (F#)

Erzwingt die Ausführung dieses Werts und gibt sein Ergebnis zurück. Dieselbe Bedeutung wie Value. Mit gegenseitigem Ausschluss wird verhindert, dass andere Threads ebenfalls den Wert berechnen.

Namespace/Modulpfad: Microsoft.FSharp.Control.LazyExtensions

Assembly: FSharp.Core (in FSharp.Core.dll)

// Signature:
type System.Lazy with
  member Force : unit -> 'T

// Usage:
lazy.Force ()

Rückgabewert

Der Wert des Lazy-Objekts.

Beispiel

Im folgenden Code wird die Verwendung der Force-Erweiterungsmethode veranschaulicht.

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

Die Ausgabe zeigt an, dass beim Aufruf von Force zum Erstellen des Werts für lazyVal1 der berechnete Wert beim Drucken der Werte abgerufen wird.

  

Plattformen

Windows 7, Windows Vista SP2, Windows XP SP3, Windows XP x64 SP2, Windows Server 2008 R2, Windows Server 2008 SP2, Windows Server 2003 SP2

Versionsinformationen

F#-Runtime

Unterstützt in: 2.0

Silverlight

Unterstützt in: 3

Siehe auch

Referenz

Lazy<T>

Verzögerte Berechnungen (F#)

Weitere Ressourcen

Control.LazyExtensions-Modul (F#)

Änderungsprotokoll

Datum

Versionsgeschichte

Grund

Mai 2010

Codebeispiel hinzugefügt.

Informationsergänzung.