Freigeben über


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

Siehe auch

Referenz

Control.Async-Klasse (F#)

Microsoft.FSharp.Control-Namespace (F#)

AsyncCallback

IAsyncResult