다음을 통해 공유


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 Windows 서버 2012, Windows Server 2008 R2, Windows 7, 8

버전 정보

F# 코어 라이브러리 버전

지원되는 버전: 2.0

참고 항목

참조

Control.LazyExtensions 모듈(F#)

Lazy<T>

지연 계산(F#)