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


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

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

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

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

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

// Usage:
Async.FromBeginEnd (arg1, arg2, arg3, beginAction, endAction)
Async.FromBeginEnd (arg1, arg2, arg3, beginAction, endAction, cancelAction = cancelAction)

Параметры

  • arg1
    Тип: 'Arg1

    Первый аргумент для данной операции.

  • arg2
    Тип: 'Arg2

    Второй аргумент для данной операции.

  • arg3
    Тип: 'Arg3

    Третий аргумент для данной операции.

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

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

  • endAction
    Тип: IAsyncResult -> 'T

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

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

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

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

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

Заметки

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

Async.FromBeginEnd(arg1,arg2,arg3,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#)