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, verrà 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 7, Windows Vista SP2, Windows XP SP3, Windows XP x64 SP2, Windows Server 2008 R2, Windows Server 2008 SP2, Windows Server 2003 SP2.
Informazioni sulla versione
F# Runtime
Supportato in: 2.0, 4.0
Silverlight
Supportato in: 3
Vedere anche
Riferimenti
Spazio dei nomi Microsoft.FSharp.Control (F#)
Cronologia delle modifiche
Data |
Cronologia |
Motivo |
---|---|---|
Agosto 2010 |
Esempio di codice migliorato. |
Miglioramento delle informazioni. |