Lazy.Force<'T> 拡張メソッド (F#)
更新 : 2010 年 5 月
この値を強制的に実行し、その結果を返します。 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 7、Windows Vista SP2、Windows XP SP3、Windows XP x64 SP2、Windows Server 2008 R2、Windows Server 2008 SP2、Windows Server 2003 SP2
バージョン情報
F# ランタイム
サポート: 2.0
Silverlight
サポート: 3
参照
参照
その他の技術情報
Control.LazyExtensions モジュール (F#)
履歴の変更
日付 |
履歴 |
理由 |
---|---|---|
2010 年 5 月 |
コード例を追加。 |
情報の拡充 |