Async.AwaitIAsyncResult — Metoda (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:IAsyncResult

    IAsyncResult czekać.

  • millisecondsTimeout
    Typ: int

    Wartość 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

Zobacz też

Informacje

Control.Async — Klasa (F#)

Microsoft.FSharp.Control — Przestrzeń nazw (F#)

IAsyncResult