Metodo Async.StartImmediate (F#)
Esegue un calcolo asincrono, iniziando immediatamente nel thread del sistema operativo corrente.
Percorso di spazio dei nomi/modulo: 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)
Parametri
-
Calcolo asincrono da eseguire.
cancellationToken
Tipo: CancellationTokenToken di annullamento facoltativo da associare al calcolo.Se questo parametro non viene specificato, verrà utilizzato il valore predefinito.
Note
Se non viene specificato alcun token di annullamento, viene utilizzato il token di annullamento predefinito.
Esempio
Nell'esempio di codice riportato di seguito viene illustrato come utilizzare Async.StartImmediate per avviare un calcolo asincrono nel thread corrente.Spesso, un'operazione asincrona deve aggiornare l'interfaccia utente, cosa che deve essere sempre eseguita sul thread dell'interfaccia utente.Quando l'operazione asincrona deve iniziare dall'aggiornamento dell'interfaccia utente, Async.StartImmediate è una scelta migliore rispetto a Async.Start, che avvia l'operazione asincrona in un thread del pool di thread.
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)
Piattaforme
Windows 8, Windows 7, Windows Server 2012, Windows Server 2008 R2
Informazioni sulla versione
Versioni della libreria di base F#
Supportato in: 2,0, 4,0, portabile