Compartir a través de


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

Vea también

Referencia

Control.Async (Clase de F#)

Microsoft.FSharp.Control (Espacio de nombres de F#)

AsyncCallback

IAsyncResult