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 |
조건 |
---|---|
만료 예정 시간이 음수이고 무한대가 아닌 경우 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
참고 항목
참조
Microsoft.FSharp.Control 네임스페이스(F#)
변경 기록
날짜 |
변경 내용 |
이유 |
---|---|---|
2010년 7월 |
코드 예제를 추가했습니다. |
향상된 기능 관련 정보 |