Async.AwaitIAsyncResult, méthode (F#)
Crée un calcul asynchrone qui attendra sur IAsyncResult.
Espace de noms/Chemin du module : Microsoft.FSharp.Control
Assembly : FSharp.Core (in FSharp.Core.dll)
// Signature:
static member AwaitIAsyncResult : IAsyncResult * ?int -> Async<bool>
// Usage:
Async.AwaitIAsyncResult (iar)
Async.AwaitIAsyncResult (iar, millisecondsTimeout = millisecondsTimeout)
Paramètres
iar
Type : IAsyncResultIAsyncResult à attendre.
millisecondsTimeout
Type : intValeur du délai d'attente en millisecondes. Si aucune valeur n'est fournie, valeur par défaut -1, correspondant à Infinite.
Valeur de retour
Calcul asynchrone qui attend le IAsyncResult donné.
Notes
Le calcul retourne la valeur true si le handle a indiqué un résultat dans le délai d'attente donné.
Exemple
L'exemple de code suivant illustre comment utiliser Async.AwaitIAsyncResult pour installer et effectuer un calcul qui est déclenchée lorsqu'une opération asynchrone .NET Framework précédente qui génère IAsyncResult prend fin. Dans ce cas, avec l'appel de AwaitIAsyncResult, l'opération attend la fin d'une opération d'écriture dans le fichier avant d'ouvrir le fichier en vue de sa lecture.
open System.IO
let streamWriter1 = File.CreateText("test1.txt")
let count = 10000000
let buffer = Array.init count (fun index -> byte (index % 256))
printfn "Writing to file test1.txt."
let asyncResult = streamWriter1.BaseStream.BeginWrite(buffer, 0, count, null, null)
// Read a file, but use AwaitIAsyncResult to wait for the write operation
// to be completed before reading.
let readFile filename asyncResult count =
async {
let! returnValue = Async.AwaitIAsyncResult(asyncResult)
printfn "Reading from file test1.txt."
// Close the file.
streamWriter1.Close()
// Now open the same file for reading.
let streamReader1 = File.OpenText(filename)
let! newBuffer = streamReader1.BaseStream.AsyncRead(count)
return newBuffer
}
let bufferResult = readFile "test1.txt" asyncResult count
|> Async.RunSynchronously
Plateformes
Windows 8, Windows 7, Windows Server 2012, Windows Server 2008 R2
Informations de version
Versions de bibliothèque principale F#
Prise en charge dans : 2,0, 4,0, portables