Async.StartImmediate 메서드(F#)
현재 운영 체제 스레드에서 즉시 시작되는 비동기 계산을 실행합니다.
네임스페이스/모듈 경로: Microsoft.FSharp.Control
어셈블리: FSharp.Core(FSharp.Core.dll)
// Signature:
static member StartImmediate : Async<unit> * CancellationToken option -> unit
// Usage:
Async.StartImmediate (computation)
Async.StartImmediate (computation, cancellationToken = cancellationToken)
매개 변수
-
실행할 비동기 계산입니다.
cancellationToken
형식: CancellationToken계산과 연결할 선택적 취소 토큰입니다. 이 매개 변수를 지정하지 않으면 기본값이 사용됩니다.
설명
취소 토큰을 지정하지 않으면 기본 취소 토큰이 사용됩니다.
예제
다음 코드 예제에서는 Async.StartImmediate를 사용하여 현재 스레드에서 비동기 계산을 시작하는 방법에 대해 설명합니다. 비동기 작업은 UI 스레드에서 UI를 자주 업데이트해야 합니다. UI를 업데이트하여 비동기 작업을 시작해야 하는 경우 스레드 풀 스레드에서 비동기 작업을 시작하는 Async.Start보다 Async.StartImmediate를 선택하는 것이 더 좋습니다.
open System.Windows.Forms
let bufferData = Array.zeroCreate<byte> 100000000
let async1 (button : Button) =
async {
button.Text <- "Busy"
button.Enabled <- false
let context = System.Threading.SynchronizationContext.Current
do! Async.SwitchToThreadPool()
use outputFile = System.IO.File.Create("longoutput.dat")
do! outputFile.AsyncWrite(bufferData)
do! Async.SwitchToContext(context)
button.Text <- "Start"
button.Enabled <- true
}
let form = new Form(Text = "Test Form")
let button = new Button(Text = "Start")
form.Controls.Add(button)
button.Click.Add(fun args -> Async.StartImmediate(async1 button))
Application.Run(form)
플랫폼
Windows Windows 서버 2012, Windows Server 2008 R2, Windows 7, 8
버전 정보
F# 코어 라이브러리 버전
지원: 2.0, 4.0, 노트북