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#)
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. |