Метод Async.AsBeginEnd<'Arg,'T> (F#)
Создает три функции, которые можно использовать для реализации асинхронной модели программирования (APM) платформы .NET Framework для заданного асинхронного вычисления.
Пространство имен/путь к модулю: Microsoft.FSharp.Control
Сборка: FSharp.Core (в FSharp.Core.dll)
// Signature:
static member AsBeginEnd : ('Arg -> Async<'T>) -> ('Arg * AsyncCallback * obj -> IAsyncResult) * (IAsyncResult -> 'T) * (IAsyncResult -> unit)
// Usage:
Async.AsBeginEnd (computation)
Параметры
computation
Тип: 'Arg -> Async<'T>Функция, создающая асинхронное вычисление, которое требуется разделить для обычной асинхронной модели программирования (APM) платформы .NET Framework.
Возвращаемое значение
Кортеж элементов begin, end и cancel.
Заметки
Дополнительные сведения о модели асинхронного программирования .NET см. в разделе Общие сведения об асинхронном программировании.
Функции начала, конца и отмены должны публиковаться обычным образом как члены с префиксами Begin, End и Cancel и могут использоваться в определении типа в следующем виде.
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)
Если асинхронное вычисление не принимает аргументов, AsBeginEnd используется следующим образом.
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)
Если асинхронное вычисление содержит два аргумента, AsBeginEnd используется следующим образом.
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)
В каждом случае полученный в результате API аналогичен API, используемым в других языках .NET Framework, и предоставляет удобный способ публикации асинхронных вычислений в компонентах, которые предполагается использовать из других языков .NET Framework.
Платформы
Windows 7, Windows Vista с пакетом обновления 2 (SP2), Windows XP с пакетом обновления 3 (SP3), Windows XP x64 с пакетом обновления 2 (SP2), Windows Server 2008 R2, Windows Server 2008 с пакетом обновления 2 (SP2), Windows Server 2003 с пакетом обновления 2 (SP2)
Сведения о версии
Среда выполнения F#
Поддерживается в версиях 2.0, 4.0
Silverlight
Поддерживается в версии 3