Async.AwaitIAsyncResult-Methode (F#)
Aktualisiert: August 2010
Erstellt eine asynchrone Berechnung, die auf das IAsyncResult wartet.
Namespace/Modulpfad: 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)
Parameter
iar
Typ: IAsyncResultDas IAsyncResult, auf das gewartet werden soll.
millisecondsTimeout
Typ: intDer Timeoutwert in Millisekunden. Ohne eine Angabe ist der Standardwert -1. Dies entspricht Infinite.
Rückgabewert
Eine asynchrone Berechnung, die auf den angegebenen IAsyncResult wartet.
Hinweise
Die Berechnung gibt true zurück, wenn das Handle ein Ergebnis im angegebenen Timeout angegeben hat.
Beispiel
Im folgenden Codebeispiel wird veranschaulicht, wie mit Async.AwaitIAsyncResult eine Berechnung eingerichtet und ausgeführt wird, die ausgelöst wird, wenn ein vorheriger asynchroner .NET Framework-Vorgang beendet wird, der IAsyncResult generiert. In diesem Fall bewirkt der Aufruf von AwaitIAsyncResult, dass der Vorgang auf den Abschluss des Dateischreibvorgangs wartet, bevor die Datei zum Lesen geöffnet wird.
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
Plattformen
Windows 7, Windows Vista SP2, Windows XP SP3, Windows XP x64 SP2, Windows Server 2008 R2, Windows Server 2008 SP2, Windows Server 2003 SP2
Versionsinformationen
F#-Runtime
Unterstützt in: 2.0, 4.0
Silverlight
Unterstützt in: 3
Siehe auch
Referenz
Weitere Ressourcen
Microsoft.FSharp.Control-Namespace (F#)
Änderungsprotokoll
Datum |
Versionsgeschichte |
Grund |
---|---|---|
August 2010 |
Codebeispiel hinzugefügt. |
Informationsergänzung. |