Async.AsBeginEnd<'Arg,'T> (Método de F#)
Crea tres funciones que se pueden usar para implementar el modelo de programación asincrónica (APM) de .NET Framework para el cálculo asincrónico concreto.
Espacio de nombres/Ruta de acceso del módulo: Microsoft.FSharp.Control
Ensamblado: FSharp.Core (en FSharp.Core.dll)
// Signature:
static member AsBeginEnd : ('Arg -> Async<'T>) -> ('Arg * AsyncCallback * obj -> IAsyncResult) * (IAsyncResult -> 'T) * (IAsyncResult -> unit)
// Usage:
Async.AsBeginEnd (computation)
Parámetros
computation
Tipo: 'Arg ->Async<'T>Función que genera el cálculo asincrónico que se va a dividir en el modelo de programación asincrónica tradicional de .NET.
Valor devuelto
Tupla de los miembros de comienzo, fin y cancelación.
Comentarios
Para obtener más información sobre el modelo de programación asincrónica de .NET Framework, vea Modelo de programación asincrónica (APM).
Normalmente, las funciones de inicio, fin y cancelación deben publicarse como miembros con el prefijo Begin, End y Cancel que se pueden usar en una definición de tipo de la manera siguiente.
let beginAction,endAction,cancelAction =
Async.AsBeginEnd (fun arg -> computation)
member x.BeginSomeOperation(arg, callback ,state:obj) =
beginAction(arg, callback, state)
member x.EndSomeOperation(iar) = endAction(iar)
member x.CancelSomeOperation(iar) = cancelAction(iar)
Si el cálculo asincrónico no toma argumentos, AsBeginEnd se utilizará de la siguiente manera.
let beginAction,endAction,cancelAction =
Async.AsBeginEnd (fun () -> computation)
member x.BeginSomeOperation(callback, state:obj) =
beginAction((), callback, state)
member x.EndSomeOperation(iar) = endAction(iar)
member x.CancelSomeOperation(iar) = cancelAction(iar)
Si el cálculo asincrónico toma dos argumentos, AsBeginEnd se utilizará de la siguiente manera.
let beginAction,endAction,cancelAction =
Async.AsBeginEnd (fun arg1 arg2 -> computation)
member x.BeginSomeOperation(arg1, arg2, callback, state:obj) =
beginAction((), callback, state)
member x.EndSomeOperation(iar) = endAction(iar)
member x.CancelSomeOperation(iar) = cancelAction(iar)
En cada caso, la API resultante es similar a la usada en otros lenguajes de .NET Framework y es una forma útil de publicar cálculos asincrónicos en componentes pensados para su uso desde otros lenguajes de .NET Framework.
Plataformas
Windows 8, Windows 7, Windows Server 2012, Windows Server 2008 R2
Información de versiones
Versiones de la biblioteca básica de F#
Se admite en: 2.0, 4.0, portables