Lazy.Force<'T> (Método de extensión de F#)

Fuerza la ejecución de este valor y devuelve su resultado.Igual que Value.Se utiliza la exclusión mutua para evitar que otros subprocesos también calculen el valor.

Espacio de nombres/Ruta de acceso del módulo: Microsoft.FSharp.Control.LazyExtensions

Ensamblado: FSharp.Core (en FSharp.Core.dll)

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

// Usage:
lazy.Force ()

Valor devuelto

Valor del objeto Lazy.

Ejemplo

En el ejemplo de código siguiente se muestra el uso del método de extensión 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

El resultado indica que cuando se llama a Force para crear el valor de lazyVal1, el valor calculado se recupera al imprimir los valores.

  

Plataformas

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

Información de versiones

Versiones de la biblioteca básica de F#

Se admite en la versión: 2.0

Vea también

Referencia

Control.LazyExtensions (Módulo de F#)

Lazy<T>

Expresiones con procesamiento diferido (F#)