Nota:
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
Crea un cálculo asincrónico que esperará el objeto WaitHandle proporcionado.
Espacio de nombres/Ruta de acceso del módulo: Microsoft.FSharp.Control
Ensamblado: FSharp.Core (en FSharp.Core.dll)
// Signature:
static member AwaitWaitHandle : WaitHandle * ?int -> Async<bool>
// Usage:
Async.AwaitWaitHandle (waitHandle)
Async.AwaitWaitHandle (waitHandle, millisecondsTimeout = millisecondsTimeout)
Parámetros
waitHandle
Tipo: WaitHandleIdentificador de espera que puede señalizarse.
millisecondsTimeout
Tipo: intValor del tiempo de espera, en milisegundos. Si no se proporciona ningún valor de tiempo de espera, el valor predeterminado es -1, que corresponde a ystem.Threading.Timeout.Infinite.
Valor devuelto
Cálculo asincrónico que va a esperar el objeto WaitHandle especificado.
Comentarios
El cálculo devuelve true si el identificador indicó un resultado en el tiempo de espera especificado.
Ejemplo
En el ejemplo de código siguiente se muestra cómo usar Async.AwaitWaitHandle para configurar un cálculo que se ejecutará al completarse otra operación asincrónica, indicado por un identificador de espera.
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
Plataformas
Windows 7, Windows Vista SP2, Windows XP SP3, Windows XP x64 SP2, Windows Server 2008 R2, Windows Server 2008 SP2, Windows Server 2003 SP2
Información de versiones
Runtime de F#
Se admite en las versiones: 2.0, 4.0
Silverlight
Se admite en la versión: 3
Vea también
Referencia
Microsoft.FSharp.Control (Espacio de nombres de F#)
Historial de cambios
Fecha |
Historial |
Motivo |
|---|---|---|
|
Agosto de 2010 |
Se ha agregado un ejemplo de código. |
Mejora de la información. |