Метод расширения Lazy.Force<'T> (F#)
Обеспечивает принудительное выполнение данного значения и возвращает его результат.Эквивалентно Value.Для предотвращения вычисления значения другими потоками используется взаимное исключение.
Пространство имен/путь к модулю: Microsoft.FSharp.Control.LazyExtensions
Сборка: FSharp.Core (в FSharp.Core.dll)
// Signature:
type System.Lazy with
member Force : unit -> 'T
// Usage:
lazy.Force ()
Возвращаемое значение
Значение объекта Lazy.
Пример
В следующем примере кода показывается использование метода расширения 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
Выходные данные показывают, что при вызове метода Force для создания значения для lazyVal1, вычисленное значение извлекается при печати значений.
Платформы
Windows 8, Windows 7, Windows Server 2012, Windows 2008 Server R2
Сведения о версии
Основной версии библиотеки F#
Поддерживается в версии 2.0