Sdílet prostřednictvím


Metoda Async.StartImmediate (F#)

Spustí asynchronní výpočtu, počínaje okamžitě aktuální podproces operačního systému.

Cesta k oboru názvů nebo modul: Microsoft.FSharp.Control

Sestavení: FSharp.Core (v FSharp.Core.dll)

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

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

Parametry

  • computation
    Type: Async<unit>

    Asynchronní provedení výpočtu.

  • cancellationToken
    Typ: CancellationToken

    Token volitelné zrušení přidružení k výpočtu.Pokud není tento parametr zadán, je použit výchozí.

Poznámky

Není-li žádný token zrušení výchozího tokenu zrušení slouží.

Příklad

Následující příklad kódu ukazuje, jak použít Async.StartImmediate na aktuální podproces spuštění asynchronního výpočtu.Asynchronní operace potřebuje často aktualizovat uživatelské rozhraní by mělo být prováděno vždy uživatelské rozhraní.Při asynchronní operace potřebuje nejprve aktualizace UI, Async.StartImmediate je vhodnější než Async.Start, který začíná na podproces fondu podprocesů asynchronní operace.


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)

Platformy

Windows 8, Windows 7, Windows Server 2012 Windows Server 2008 R2

Informace o verzi

F# základní verze knihovny

Podporovány: 2.0, 4.0, přenosné

Viz také

Referenční dokumentace

Třída Control.Async (F#)

Obor názvů Microsoft.FSharp.Control (F#)