Aracılığıyla paylaş


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

  • computation
    Type: Async<unit>

    Yürütülecek zaman uyumsuz hesaplama.

  • cancellationToken
    Türü: CancellationToken

    Hesaplama 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

Ayrıca bkz.

Başvuru

Control.Async Sınıfı (F#)

Microsoft.FSharp.Control İsim Uzayı (F#)