Partager via


Async.AsBeginEnd<'Arg,'T>, méthode (F#)

Crée trois fonctions qui peuvent être utilisées pour implémenter le modèle de programmation asynchrone (APM) .NET Framework pour un calcul asynchrone fourni.

Espace de noms/Chemin du module : Microsoft.FSharp.Control

Assembly : FSharp.Core (in FSharp.Core.dll)

// Signature:
static member AsBeginEnd : ('Arg -> Async<'T>) -> ('Arg * AsyncCallback * obj -> IAsyncResult) * (IAsyncResult -> 'T) * (IAsyncResult -> unit)

// Usage:
Async.AsBeginEnd (computation)

Paramètres

  • computation
    Type : 'Arg ->Async<'T>

    Fonction qui génère le calcul asynchrone à fractionner dans le modèle de programmation asynchrone .NET Framework traditionnel.

Valeur de retour

Tuple des membres de début, de fin et d'annulation.

Notes

Pour plus d'informations sur le modèle de programmation asynchrone de .NET Framework, consultez Vue d'ensemble de la programmation asynchrone.

Les fonctions de début, de fin, et d'annulation devraient normalement être publiés comme membres qui sont préfixés avec Begin, End et Cancel, et qui peuvent être utilisés dans une définition de type comme suit.

 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 le calcul asynchrone ne prend aucun argument, AsBeginEnd est utilisé de la façon suivante.

 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 le calcul asynchrone prend deux arguments, AsBeginEnd est utilisé de la façon suivante.

 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)

Dans chaque cas, l'API obtenue ressemble à celle utilisée dans d'autres langages .NET Framework et est un moyen utile de publier des calculs asynchrones dans les composants qui sont prévus pour être utilisés à partir d'autres langages .NET Framework.

Plateformes

Windows 7, Windows Vista SP2, Windows XP SP3, Windows XP x64 SP2, Windows Server 2008 R2, Windows Server 2008 SP2, Windows Server 2003 SP2

Informations de version

Runtime F#

Pris en charge dans : 2.0, 4.0

Silverlight

Prise en charge dans : 3

Voir aussi

Référence

Control.Async, classe (F#)

Microsoft.FSharp.Control, espace de noms (F#)

AsyncCallback

IAsyncResult