Condividi tramite


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

Vedere anche

Riferimenti

Classe Control.Async (F#)

Spazio dei nomi Microsoft.FSharp.Control (F#)

AsyncCallback

IAsyncResult