Udostępnij za pośrednictwem


Lazy.Force <'T> Metoda rozszerzenie (F#)

Wymusza wykonanie tej wartości i zwraca wynik.Same as Value.Mutex jest używany do uniemożliwia także obliczanie wartości innych wątków.

Ścieżka obszaru nazw/modułu: Microsoft.FSharp.Control.LazyExtensions

Zgromadzenie: FSharp.Core (w FSharp.Core.dll)

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

// Usage:
lazy.Force ()

Wartość zwracana

Wartość Lazy obiektu.

Przykład

Poniższy kod ilustruje użycie Force metodę rozszerzenia.

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

Dane wyjściowe wskazuje, że po Force nazywa się wartość do lazyVal1, wartość wyliczona jest pobierana podczas drukowania wartości.

  

Platformy

Windows 8, Windows 7, Windows Server 2012 Windows Server 2008 R2

Informacje o wersji

F# Core wersji biblioteki

Obsługiwane: 2.0

Zobacz też

Informacje

Moduł Control.LazyExtensions (F#)

Lazy<T>

Obliczenia z opóźnieniem (F#)