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: intMilisaniye 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
Microsoft.FSharp.Control İsim Uzayı (F#)
Değişiklik Geçmişi
Tarih |
Geçmiş |
Nedeni |
---|---|---|
Ağustos 2010 |
Eklenen kod örneği. |
Bilgi geliştirme. |