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 Server 2008 R2
版本資訊
F# 核心程式庫版本
支援版本:2.0