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 Ü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

Siehe auch

Referenz

AsyncCallback

IAsyncResult

Weitere Ressourcen

Control.Async-Klasse (F#)

Microsoft.FSharp.Control-Namespace (F#)