다음을 통해 공유


Async.Sleep 메서드(F#)

업데이트: 2010년 7월

지정된 시간 동안 대기 상태로 둘 비동기 계산을 만듭니다. 이것은 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 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, 4.0

Silverlight

지원되는 버전: 3

참고 항목

참조

Control.Async 클래스(F#)

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

변경 기록

날짜

변경 내용

이유

2010년 7월

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

향상된 기능 관련 정보