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 8, Windows 7, Windows Server 2012, Windows Server 2008 R2
Versionsinformationen
F#-Kern-Bibliotheks-Versionen
Unterstützt in: 2.0