Metoda Async.AwaitIAsyncResult (F#)
Tworzy asynchronicznego obliczeń, która będzie czekać na IAsyncResult.
Ścieżka obszaru nazw/modułu: Microsoft.FSharp.Control
Zestaw: FSharp.Core (w FSharp.Core.dll)
// Signature:
static member AwaitIAsyncResult : IAsyncResult * ?int -> Async<bool>
// Usage:
Async.AwaitIAsyncResult (iar)
Async.AwaitIAsyncResult (iar, millisecondsTimeout = millisecondsTimeout)
Parametry
iar
Typ:IAsyncResultIAsyncResult czekać.
millisecondsTimeout
Typ: intWartość limitu czasu w milisekundach.Ile nie następnie domyślna wartość -1, odpowiadającego Infinite.
Wartość zwracana
Asynchroniczne obliczeń, który czeka na danym IAsyncResult.
Uwagi
Obliczenia zwraca true Jeżeli uchwyt wynik w określonym limicie czasu.
Przykład
Poniższy kod ilustruje sposób użycia Async.AwaitIAsyncResult do ustawiania i wykonywania obliczeń, wyzwalana po poprzedniej operacji asynchronicznych.NET Framework daje IAsyncResult wykończenie.W tym przypadku wywołanie AwaitIAsyncResult powoduje wykonanie operacji oczekiwania operacji zapisywania pliku zakończone przed otwarciem pliku do odczytu.
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
Platformy
Windows 8, Windows 7, Windows Server 2012 Windows Server 2008 R2
Informacje o wersji
F# Core wersji biblioteki
Obsługiwane: 2.0, 4.0, przenośne