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