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 Übersicht über die asynchrone Programmierung.
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 7, Windows Vista SP2, Windows XP SP3, Windows XP x64 SP2, Windows Server 2008 R2, Windows Server 2008 SP2, Windows Server 2003 SP2
Versionsinformationen
F#-Runtime
Unterstützt in: 2.0, 4.0
Silverlight
Unterstützt in: 3