Metodo Async.AsBeginEnd<'Arg,'T> (F#)
Crea tre funzioni utilizzabili per implementare il modello di programmazione asincrona .NET Framework per un calcolo asincrono fornito.
Percorso di spazio dei nomi/modulo: 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)
Parametri
computation
Tipo: 'Arg -> Async<'T>Funzione che genera il calcolo asincrono da suddividere nel modello di programmazione asincrona .NET Framework tradizionale.
Valore restituito
Una tupla costituita dai membri begin, end e cancel.
Note
Per ulteriori informazioni sull'utilizzo del modello di programmazione asincrona .NET Framework, vedere Cenni preliminari sulla programmazione asincrona
Le funzioni di inizio, fine e annullamento devono essere pubblicate regolarmente come membri con prefisso Begin, End e Cancel che possono essere utilizzati all'interno di una definizione del tipo nel modo riportato di seguito.
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)
Se il calcolo asincrono non utilizza alcun argomento, viene utilizzato AsBeginEnd nel modo seguente.
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)
Se il calcolo asincrono utilizza due argomenti, viene utilizzato AsBeginEnd nel modo seguente.
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 ogni caso, l'API risultante è simile a quello utilizzato in altri linguaggi .NET Framework ed è utile per pubblicare i calcoli asincroni in componenti intesi per essere utilizzati da altri linguaggi .NET Framework.
Piattaforme
Windows 7, Windows Vista SP2, Windows XP SP3, Windows XP x64 SP2, Windows Server 2008 R2, Windows Server 2008 SP2, Windows Server 2003 SP2.
Informazioni sulla versione
F# Runtime
Supportato in: 2.0, 4.0
Silverlight
Supportato in: 3