Aracılığıyla paylaş


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: WaitHandle

    Erdiği bekleme işleci.

  • millisecondsTimeout
    Tür: int

    Milisaniye 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

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

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.