Metoda Async.AwaitIAsyncResult (F#)
Vytvoří asynchronní výpočtu, který bude čekat na IAsyncResult.
Cesta k oboru názvů nebo modul: Microsoft.FSharp.Control
Sestavení: FSharp.Core (v FSharp.Core.dll)
// Signature:
static member AwaitIAsyncResult : IAsyncResult * ?int -> Async<bool>
// Usage:
Async.AwaitIAsyncResult (iar)
Async.AwaitIAsyncResult (iar, millisecondsTimeout = millisecondsTimeout)
iar
Typ:IAsyncResultTřída IAsyncResult čekání na
millisecondsTimeout
Typ: intHodnota časového limitu v milisekundách.Pokud jeden není pak výchozí hodnota -1 odpovídající Infinite.
Asynchronní výpočtu, který čeká na dané IAsyncResult.
Vrátí výpočtu true Pokud popisovač výsledek v daném časovém limitu.
Následující příklad kódu ukazuje, jak použít Async.AwaitIAsyncResult k nastavení a provedení výpočtu, která je spuštěna při předchozí asynchronní operaci rozhraní.NET Framework, který vytváří IAsyncResult dokončení.V tomto případě volání AwaitIAsyncResult způsobí, že operace čekání před otevřením souboru pro čtení dokončení operace zápisu souboru.
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
Windows 8, Windows 7, Windows Server 2012 Windows Server 2008 R2
F# základní verze knihovny
Podporovány: 2.0, 4.0, přenosné