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


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

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

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

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

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

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

Параметры

  • arg1
    Тип: 'Arg1

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

  • arg2
    Тип: 'Arg2

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

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

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

  • endAction
    Тип: IAsyncResult -> 'T

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

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

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

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

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

Заметки

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

Async.FromBeginEnd(arg1,arg2,ws.BeginGetWeather,ws.EndGetWeather)

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

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

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

Платформы

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

Сведения о версии

Основной версии библиотеки F#

Поддерживается в: 2.0, 4.0, портативное

См. также

Ссылки

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

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