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 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 Información general sobre la programación asincrónica.
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 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