Compartir a través de


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 7, Windows Vista SP2, Windows XP SP3, Windows XP x64 SP2, Windows Server 2008 R2, Windows Server 2008 SP2, Windows Server 2003 SP2

Información de versiones

Runtime de F#

Admitido en: 2.0

Silverlight

Se admite en la versión: 3

Vea también

Referencia

Control.LazyExtensions (Módulo de F#)

Lazy<T>

Expresiones con procesamiento diferido (F#)

Historial de cambios

Fecha

Historial

Motivo

Mayo de 2010

Se ha agregado un ejemplo de código.

Mejora de la información.