Async.StartImmediate Yöntemi (F#)
Geçerli işletim sistemi iş parçacığı üzerinde hemen başlayarak zaman uyumsuz bir hesaplama çalıştırır.
Ad alanı/modül yolu: Microsoft.FSharp.Control
Derleme: FSharp.Core (FSharp.Core.dll),
// Signature:
static member StartImmediate : Async<unit> * CancellationToken option -> unit
// Usage:
Async.StartImmediate (computation)
Async.StartImmediate (computation, cancellationToken = cancellationToken)
Parametreler
-
Yürütülecek zaman uyumsuz hesaplama.
cancellationToken
Türü: CancellationTokenHesaplama ile ilişkilendirmek için isteğe bağlı iptali simgesi.Bu parametre sağlanmazsa varsayılan kullanılır.
Notlar
İptali belirteci sağlanmamışsa varsayılan iptali belirteci kullanılır.
Örnek
Aşağıdaki kod örneği nasıl kullanılacağını gösteren Async.StartImmediate zaman uyumsuz bir hesaplama geçerli iş parçacığı üzerinde başlatmak için.Çoğu zaman, zaman uyumsuz bir işlem UI iş parçacığı üzerinde yapılan her zaman kullanıcı Arabirimi güncelleştirmesi gerekir.Kullanıcı Arabirimi, güncelleştirerek başlamak kendi zaman uyumsuz işlem gerektiğinde Async.StartImmediate 'den daha iyi bir seçimdir Async.Start, bir iş parçacığı havuzu iş parçacığı üzerinde zaman uyumsuz işlem başlatır.
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)
Platformlar
Windows 8, Windows 7, Windows Server 2012, Windows Server 2008 R2
Sürüm Bilgisi
F# Çekirdek Kitaplığı sürümleri
Desteklenen: 2.0, 4.0, Portable