다음을 통해 공유


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

Lazy<T>

지연 계산(F#)

변경 기록

날짜

변경 내용

이유

2010년 5월

코드 예제를 추가했습니다.

향상된 기능 관련 정보