Async.StartImmediate, méthode (F#)
Exécute un calcul asynchrone, en commençant immédiatement sur le thread du système d'exploitation actuel.
Espace de noms/Chemin du module : 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)
Paramètres
computation
Type : Async<unit>Calcul asynchrone à exécuter.
cancellationToken
Type : CancellationTokenLe jeton d'annulation facultatif à associer au calcul. La valeur par défaut est utilisée si ce paramètre n'est pas fourni.
Notes
Si aucun jeton d'annulation n'est fourni, le jeton d'annulation par défaut est utilisé.
Exemple
L'exemple de code suivant montre comment utiliser Async.StartImmediate pour démarrer un calcul asynchrone dans le thread actuel. Souvent, une opération asynchrone doit mettre à jour l'interface utilisateur, ce qui doit toujours être effectué sur le thread de l'interface utilisateur. Lorsque votre opération asynchrone doit commencer en mettant à jour l'interface utilisateur, Async.StartImmediate est un meilleur choix que Async.Start, qui commence l'opération asynchrone dans un thread ThreadPool.
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)
Plateformes
Windows 7, Windows Vista SP2, Windows XP SP3, Windows XP x64 SP2, Windows Server 2008 R2, Windows Server 2008 SP2, Windows Server 2003 SP2
Informations de version
Runtime F#
Pris en charge dans : 2.0, 4.0
Silverlight
Prise en charge dans : 3
Voir aussi
Référence
Microsoft.FSharp.Control, espace de noms (F#)
Historique des modifications
Date |
Historique |
Motif |
---|---|---|
Août 2010 |
Exemple de code amélioré. |
Améliorations apportées aux informations. |