Aracılığıyla paylaş


Async.AwaitIAsyncResult Yöntemi (F#)

Bekleyip, zaman uyumsuz bir hesaplama oluşturur IAsyncResult.

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

Derleme: FSharp.Core (FSharp.Core.dll içinde)

// 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.

Açıklamalar

Hesaplama işlevi true , tanıtıcı belirtilen sonuç içinde belirli bir zaman aşımı.

Örnek

Aşağıdaki kod örneği nasıl kullanılacağı gösterilmiştir ayarlamak ve bir önceki zaman tetiklenir hesaplaması çalıştırmak içinAsync.AwaitIAsyncResult .Üreten net Framework zaman uyumsuz işlem bir IAsyncResult tamamlanır. Bu durumda, çağrı AwaitIAsyncResult atlanırsa işlem dosya yazma işlemi dosyayı açmadan önce tamamlanması bekleokuma.

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 7, Windows Vista SP2, Windows XP SP3, Windows XP x64 SP2, Windows Server 2008 R2, Windows Server 2008 SP2, Windows Server 2003 SP2

Sürüm Bilgisi

F# Çalışma Zamanı

Desteklenir: 2.0, 4.0

Silverlight

Desteklenir: 3

Ayrıca bkz.

Başvuru

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

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

IAsyncResult

Değişiklik Geçmişi

Tarih

Geçmiş

Nedeni

Ağustos 2010

Eklenen kod örneği.

Bilgi geliştirme.