다음을 통해 공유


Async.Sleep 메서드(F#)

지정된 시간 동안 대기 상태로 둘 비동기 계산을 만듭니다. 이것은 Timer 개체를 사용하여 예약됩니다. 이 연산은 대기 시간 동안 운영 체제 스레드를 차단하지 않습니다.

네임스페이스/모듈 경로: Microsoft.FSharp.Control

어셈블리: FSharp.Core(FSharp.Core.dll)

// Signature:
static member Sleep : int -> Async<unit>

// Usage:
Async.Sleep (millisecondsDueTime)

매개 변수

  • millisecondsDueTime
    형식: int

    대기 상태로 둘 시간(밀리초)입니다.

예외

Exception

조건

ArgumentOutOfRangeException

만료 예정 시간이 음수이고 무한대가 아닌 경우 throw됩니다.

반환 값

지정된 시간 동안 대기 상태로 둘 비동기 계산입니다.

예제

다음 코드 예제에서는 Async.Sleep을 사용하여 특정 기간에 대해 실행되는 계산을 시뮬레이션하는 방법을 보여 줍니다.

let simulatedJob id time =
    let timestamp() = System.DateTime.Now.Ticks
    async {
       printfn "Job %d start" id
       let timestamp1 = timestamp()
       do! Async.Sleep(time * 1000)
       let timestamp2 = timestamp()
       let timespan = System.TimeSpan(timestamp2 - timestamp1)
       printfn "Job %d end %s" id (timespan.ToString("G"))
    }

[ 1 .. 10]
|> List.mapi (fun index time -> simulatedJob index time)
|> Async.Parallel
|> Async.RunSynchronously
|> ignore

샘플 출력

여러 스레드가 동시에 실행되고 있으므로 출력이 인터리브됩니다.

  

플랫폼

Windows Windows 서버 2012, Windows Server 2008 R2, Windows 7, 8

버전 정보

F# 코어 라이브러리 버전

지원: 2.0, 4.0, 노트북

참고 항목

참조

Control.Async 클래스(F#)

Microsoft.FSharp.Control 네임스페이스(F#)