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
-
Asynchronní provedení výpočtu.
cancellationToken
Typ: CancellationTokenToken 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é