Compartilhar via


Async.AsBeginEnd <'Arg, T' > Método (F#)

Cria três funções que podem ser usadas para implementar o modelo de programação assíncrona (APM) do .NET Framework para a computação assíncrono fornecida.

Namespace/Module Path: Microsoft.FSharp.Control

Assembly: FSharp.Core (em FSharp.Core.dll)

// Signature:
static member AsBeginEnd : ('Arg -> Async<'T>) -> ('Arg * AsyncCallback * obj -> IAsyncResult) * (IAsyncResult -> 'T) * (IAsyncResult -> unit)

// Usage:
Async.AsBeginEnd (computation)

Parâmetros

  • computation
    Tipo: 'Arg ->Async<'T>

    Uma função que produz a computação assíncrono para dividir no modelo assíncrono tradicional de programação.NET Framework.

Valor de retorno

Um tuple de extremidade inicial, e membros de cancelamento.

Comentários

Para obter mais informações sobre o modelo de programação assíncrona do .NET Framework, consulte Modelo de programação assíncrona (APM).

O início, a fim, as funções e cancelar normalmente devem ser publicados como os membros que são prefixados com Begin, End, e Cancel, e que podem ser usados em uma definição de tipo como segue.

 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 a computação assíncrona não leva nenhum argumento, AsBeginEnd é usado como segue.

 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 a computação assíncrono leva dois argumentos, AsBeginEnd é usado como segue.

 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)

Em cada caso, a API resultante lembra a usado em outras linguagens do .NET Framework e está uma maneira útil para publicar os cálculos assíncronos em componentes que pretendem ser usados de outras linguagens do .NET Framework.

Plataformas

O windows 8, Windows 7, Windows Server 2012, Windows Server 2008 R2

Informações de Versão

Versões da biblioteca principal de F#

Suportado em: 2,0, 4,0, portáteis

Consulte também

Referência

Classe Control.Async (F#)

Microsoft.FSharp.Control Namespace (F#)

AsyncCallback

IAsyncResult