Async.AsBeginEnd<'Arg,'T>-Methode (F#)
Erstellt drei Funktionen, die verwendet werden können, um das asynchrone Programmiermodell (APM) von .NET Framework für eine angegebene asynchrone Berechnung zu implementieren.
Namespace/Modulpfad: 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)
Parameter
computation
Typ: 'Arg ->Async<'T>Eine Funktion, die die asynchrone Berechnung zum Unterteilen des herkömmlichen asynchronen .NET Framework-Programmiermodells erstellt.
Rückgabewert
Ein Tupel aus den Begin-, End- und Cancel-Membern.
Hinweise
Weitere Informationen zum asynchronen .NET Framework-Programmiermodell finden Sie unter Asynchrones Programmiermodell (APM).
Die Funktionen "Starten", "Beenden" und "Abbrechen" sollten normalerweise als Member veröffentlicht werden, denen Begin, End und Cancel vorangestellt ist und die innerhalb einer Typdefinition wie folgt verwendet werden können.
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)
Wenn die asynchrone Berechnung keine Argumente akzeptiert, wird AsBeginEnd wie folgt verwendet:
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)
Wenn die asynchrone Berechnung zwei Argumente akzeptiert, wird AsBeginEnd wie folgt verwendet:
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)
In jedem Fall ähnelt die resultierende API der in anderen .NET Framework-Sprachen verwendeten und ist ein nützliches Verfahren, um asynchrone Berechnungen in Komponenten zu veröffentlichen, die aus anderen .NET Framework-Sprachen verwendet werden sollen.
Plattformen
Windows 8, Windows 7, Windows Server 2012, Windows Server 2008 R2
Versionsinformationen
F#-Kern-Bibliotheks-Versionen
Unterstützt in: 2,0, 4,0, portablen