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),

// 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ı değeri 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 nesnesi.

Notlar

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 bir başka bir zaman uyumsuz işlem tamamlandığında, bekleme bir tanıtıcı tarafından belirtildiği şekilde çalışmak üzere ayarlayacağınız için.

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 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#)