Async.AwaitWaitHandle Yöntemi (F#)
Sağlanan için bekleyeceği zaman uyumsuz bir hesaplama oluşturur WaitHandle.
Ad alanı/modül yolu: Microsoft.FSharp.Control
Derleme: FSharp.Core (FSharp.Core.dll içinde)
// Signature:
static member AwaitWaitHandle : WaitHandle * ?int -> Async<bool>
// Usage:
Async.AwaitWaitHandle (waitHandle)
Async.AwaitWaitHandle (waitHandle, millisecondsTimeout = millisecondsTimeout)
Parametreler
waitHandle
Tür: WaitHandleErdiği bekleme işleci.
millisecondsTimeout
Tür: intMilisaniye cinsinden zaman aşımı değeri. Hiçbir zaman aşımı belirtilmezse, varsayılan değer istem için karşılık gelen -1 ' dir.Threading.Timeout.Infinite.
Dönüş Değeri
Bekler, zaman uyumsuz bir hesaplama verilen WaitHandle nesne.
Açıklamalar
Olay işleyici bir sonucu verilen zaman içinde belirtirse, hesaplama true döner.
Örnek
Aşağıdaki kod örneği nasıl kullanılacağı gösterilmiştir Async.AwaitWaitHandle Kur hesaplaması çalıştırmak, başka bir zaman uyumsuz işlem tamamlandıktan, gibi gösterilen bir bekleme tanıtıcısı.
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 the waitHandle to wait for the write operation
// to be completed before reading.
let readFile filename waitHandle count =
async {
let! returnValue = Async.AwaitWaitHandle(waitHandle)
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.AsyncWaitHandle count
|> Async.RunSynchronously
Çıktı
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. |