Async.AwaitWaitHandle-Methode (F#)
Aktualisiert: August 2010
Erstellt eine asynchrone Berechnung, die auf das angegebene WaitHandle wartet.
Namespace/Modulpfad: Microsoft.FSharp.Control
Assembly: FSharp.Core (in FSharp.Core.dll)
// Signature:
static member AwaitWaitHandle : WaitHandle * ?int -> Async<bool>
// Usage:
Async.AwaitWaitHandle (waitHandle)
Async.AwaitWaitHandle (waitHandle, millisecondsTimeout = millisecondsTimeout)
Parameter
waitHandle
Typ: WaitHandleDas Wait-Handle, das signalisiert werden kann.
millisecondsTimeout
Typ: intDer Timeoutwert in Millisekunden. Wenn kein Timeoutwert bereitgestellt wird, ist der Standardwert -1, was System.Threading.Timeout.Infinite entspricht.
Rückgabewert
Eine asynchrone Berechnung, die auf das angegebene WaitHandle-Objekt wartet.
Hinweise
Die Berechnung gibt true zurück, wenn das Handle ein Ergebnis im angegebenen Timeout angegeben hat.
Beispiel
Im folgenden Codebeispiel wird veranschaulicht, wie mit Async.AwaitWaitHandle eine Berechnung eingerichtet wird, die ausgeführt wird, ein anderer asynchroner Vorgang abgeschlossen wird, wie von einem Wait-Handle angegeben.
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
Output
Plattformen
Windows 7, Windows Vista SP2, Windows XP SP3, Windows XP x64 SP2, Windows Server 2008 R2, Windows Server 2008 SP2, Windows Server 2003 SP2
Versionsinformationen
F#-Runtime
Unterstützt in: 2.0, 4.0
Silverlight
Unterstützt in: 3
Siehe auch
Weitere Ressourcen
Microsoft.FSharp.Control-Namespace (F#)
Änderungsprotokoll
Datum |
Versionsgeschichte |
Grund |
---|---|---|
August 2010 |
Codebeispiel hinzugefügt. |
Informationsergänzung. |