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 |
조건 |
---|---|
만료 예정 시간이 음수이고 무한대가 아닌 경우 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, 노트북