Поделиться через


Метод Async.FromBeginEnd<'Arg1,'T> (F#)

Создает асинхронное вычисление в виде пары действий Begin/End в стиле, используемом в API-интерфейсах инфраструктуры CLI.

Пространство имен/путь к модулю: Microsoft.FSharp.Control

Сборка: FSharp.Core (в FSharp.Core.dll)

// Signature:
static member FromBeginEnd : 'Arg1 * ('Arg1 * AsyncCallback * obj -> IAsyncResult) * (IAsyncResult -> 'T) * ?(unit -> unit) -> Async<'T>

// Usage:
Async.FromBeginEnd (arg, beginAction, endAction)
Async.FromBeginEnd (arg, beginAction, endAction, cancelAction = cancelAction)

Параметры

  • arg
    Тип: 'Arg1

    Аргумент операции.

  • beginAction
    Тип: 'Arg1 * AsyncCallback * obj -> IAsyncResult

    Функция, инициирующая традиционную асинхронную операцию CLI.

  • endAction
    Тип: IAsyncResult -> 'T

    Функция, завершающая традиционную асинхронную операцию CLI.

  • cancelAction
    Тип: (unit -> unit)

    Необязательная функция, выполняемая при запросе отмены.

Возвращаемое значение

Асинхронное вычисление, заключающее в оболочку заданные функции Begin/End.

Заметки

Эту перегрузку следует использовать, если операция определяется одним аргументом. Например, с помощью следующего кода можно создать асинхронное вычисление для вызова веб-службы.

Async.FromBeginEnd(place,ws.BeginGetWeather,ws.EndGetWeather)

При запуске вычисления выполняется функция beginFunc с обратным вызовом, который представляет продолжение вычисления. При использовании обратного вызова окончательный результат получается с помощью функции endFunc.

Вычисление будет реагировать на отмену, ожидая завершения операции. Если произошла отмена и указано действие cancelAction, это действие выполняется, и вычисление продолжает ожидать завершения операции. Если действие cancelAction не указано, отмена вызывает немедленное прекращение вычисления, и последующие вызовы функции обратного вызова игнорируются.

Пример см. в разделе Async.FromBeginEnd<'T> - метод (F#).

Платформы

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

См. также

Ссылки

Класс Control.Async (F#)

Пространство имен Microsoft.FSharp.Control (F#)