Aracılığıyla paylaş


Async.AwaitIAsyncResult Yöntemi (F#)

Beklemek zaman uyumsuz bir hesaplama oluşturur IAsyncResult.

Ad alanı/modül yolu: Microsoft.FSharp.Control

Derleme: FSharp.Core (FSharp.Core.dll),

// Signature:
static member AwaitIAsyncResult : IAsyncResult * ?int -> Async<bool>

// Usage:
Async.AwaitIAsyncResult (iar)
Async.AwaitIAsyncResult (iar, millisecondsTimeout = millisecondsTimeout)

Parametreler

  • iar
    Türü:IAsyncResult

    Üzerinde beklenilen IAsyncResult.

  • millisecondsTimeout
    Türü: int

    Milisaniye cinsinden zaman aşımı değeri. Sağlanmadıysa, Infinite'e karşılık gelir ve varsayılan değeri -1'dir.

Dönüş Değeri

Verilen IAsyncResult üzerinde bekleyen zaman uyumsuz hesaplama.

Notlar

Hesaplama fonksiyonu true tanıtıcısı belirtilen zaman aşımı süresi içinde bir sonuç belirtilmişse.

Örnek

Aşağıdaki kod örneği nasıl kullanılacağı gösterilmiştir Async.AwaitIAsyncResult ayarlamak ve bir önceki .net Framework zaman uyumsuz işlem vermediğinde tetikleyen hesaplaması çalıştırmak için bir IAsyncResult biter. Bu durumda, çağrı AwaitIAsyncResult okumak için dosyayı açmadan önce tamamlanması gereken bir dosya yazma işlemi için beklenecek işlemi neden olur.

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

Platformlar

Windows 8, Windows 7, Windows Server 2012, Windows Server 2008 R2

Sürüm Bilgisi

F# Çekirdek Kitaplığı sürümleri

Desteklenen: 2.0, 4.0, Portable

Ayrıca bkz.

Başvuru

Control.Async Sınıfı (F#)

Microsoft.FSharp.Control İsim Uzayı (F#)

IAsyncResult