Freigeben über


Async.StartImmediate-Methode (F#)

Aktualisiert: August 2010

Führt eine asynchrone Berechnung aus, die sofort im aktuellen Betriebssystemthread beginnt.

Namespace/Modulpfad: Microsoft.FSharp.Control

Assembly: FSharp.Core (in FSharp.Core.dll)

// Signature:
static member StartImmediate : Async<unit> * CancellationToken option -> unit

// Usage:
Async.StartImmediate (computation)
Async.StartImmediate (computation, cancellationToken = cancellationToken)

Parameter

  • computation
    Typ: Async<unit>

    Die auszuführende asynchrone Berechnung.

  • cancellationToken
    Typ: CancellationToken

    Das optionale Abbruchtoken, das der Berechnung zugeordnet werden soll. Wenn dieser Parameter nicht bereitgestellt wird, wird der Standardwert verwendet.

Hinweise

Wenn kein Abbruchtoken bereitgestellt wird, wird das Standardabbruchtoken verwendet.

Beispiel

Im folgenden Codebeispiel wird veranschaulicht, wie mit Async.StartImmediate eine asynchrone Berechnung im aktuellen Thread gestartet wird. Häufig muss ein asynchroner Vorgang die UI aktualisieren, was immer auf dem UI-Thread ausgeführt werden sollte. Wenn der asynchrone Vorgang mit der Aktualisierung der UI beginnen muss, ist Async.StartImmediate eine bessere Option als Async.Start, wodurch der asynchrone Vorgang für einen Thread des Threadpools gestartet wird.


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)

Plattformen

Windows 7, Windows Vista SP2, Windows XP SP3, Windows XP x64 SP2, Windows Server 2008 R2, Windows Server 2008 SP2, Windows Server 2003 SP2

Versionsinformationen

F#-Runtime

Unterstützt in: 2.0, 4.0

Silverlight

Unterstützt in: 3

Siehe auch

Weitere Ressourcen

Control.Async-Klasse (F#)

Microsoft.FSharp.Control-Namespace (F#)

Änderungsprotokoll

Datum

Versionsgeschichte

Grund

August 2010

Codebeispiel wurde verbessert.

Informationsergänzung.