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


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

Содержит члены для создания асинхронных вычислений и управления ими. Control.Async является статическим классом.

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

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

[<Sealed>]
type Async =
 class
  static member AsBeginEnd : ('Arg -> Async<'T>) -> ('Arg * AsyncCallback * obj -> IAsyncResult) * (IAsyncResult -> 'T) * (IAsyncResult -> unit)
  static member AwaitEvent : IEvent<'Del,'T> * ?(unit -> unit) -> Async<'T>
  static member AwaitIAsyncResult : IAsyncResult * ?int -> Async<bool>
  static member AwaitTask : Task<'T> -> Async<'T>
  static member AwaitWaitHandle : WaitHandle * ?int -> Async<bool>
  static member CancelDefaultToken : unit -> unit
  static member Catch : Async<'T> -> Async<Choice<'T,exn>>
  static member FromBeginEnd : 'Arg1 * 'Arg2 * 'Arg3 * ('Arg1 * 'Arg2 * 'Arg3 * AsyncCallback * obj -> IAsyncResult) * (IAsyncResult -> 'T) * ?(unit -> unit) -> Async<'T>
  static member FromBeginEnd : 'Arg1 * 'Arg2 * ('Arg1 * 'Arg2 * AsyncCallback * obj -> IAsyncResult) * (IAsyncResult -> 'T) * ?(unit -> unit) -> Async<'T>
  static member FromBeginEnd : 'Arg1 * ('Arg1 * AsyncCallback * obj -> IAsyncResult) * (IAsyncResult -> 'T) * ?(unit -> unit) -> Async<'T>
  static member FromBeginEnd : (AsyncCallback * obj -> IAsyncResult) * (IAsyncResult -> 'T) * ?(unit -> unit) -> Async<'T>
  static member FromContinuations : (('T -> unit) * (exn -> unit) * (OperationCanceledException -> unit) -> unit) -> Async<'T>
  static member Ignore : Async<'T> -> Async<unit>
  static member OnCancel : (unit -> unit) -> Async<IDisposable>
  static member Parallel : seq<Async<'T>> -> Async<'T []>
  static member RunSynchronously : Async<'T> * ?int * ?CancellationToken -> 'T
  static member Sleep : int -> Async<unit>
  static member Start : Async<unit> * ?CancellationToken -> unit
  static member StartAsTask : Async<'T> * ?TaskCreationOptions * ?CancellationToken -> Task<'T>
  static member StartChild : Async<'T> * ?int -> Async<Async<'T>>
  static member StartChildAsTask : Async<'T> * ?TaskCreationOptions -> Async<Task<'T>>
  static member StartImmediate : Async<unit> * ?CancellationToken -> unit
  static member StartWithContinuations : Async<'T> * ('T -> unit) * (exn -> unit) * (OperationCanceledException -> unit) * ?CancellationToken -> unit
  static member SwitchToContext : SynchronizationContext -> Async<unit>
  static member SwitchToNewThread : unit -> Async<unit>
  static member SwitchToThreadPool : unit -> Async<unit>
  static member TryCancelled : Async<'T> * (OperationCanceledException -> unit) -> Async<'T>
  static member CancellationToken :  Async<CancellationToken>
  static member DefaultCancellationToken :  CancellationToken
 end

Заметки

В скомпилированных сборках имя этого типа — FSharpAsync. При обращении к данному типу из языка, отличного от F#, или посредством отражения следует использовать это имя.

Общие сведения об асинхронных рабочих процессах см. в разделе Асинхронные рабочие потоки (F#).

Статические члены

Элемент

Описание

AsBeginEnd

Создает три функции, которые можно использовать для реализации асинхронной модели программирования (APM) платформы .NET Framework для заданного асинхронного вычисления.

AwaitEvent

Создает асинхронное вычисление, которое ожидает однократного вызова события платформы .NET Framework, добавляя в это событие обработчик. Если вычисление завершено или отменено, обработчик удаляется из события.

AwaitIAsyncResult

Создает асинхронное вычисление, которое ожидает предоставляемый результат IAsyncResult.

AwaitTask

Возвращает асинхронное вычисление, которое ожидает выполнения указанной задачи и возвращает ее результат.

AwaitWaitHandle

Создает асинхронное вычисление, которое ожидает предоставляемый результат WaitHandle.

CancelDefaultToken

Создает условие отмены последнего набора начатых асинхронных вычислений без какого-либо конкретного токена CancellationToken. Заменяет глобальный источник CancellationTokenSource на новый глобальный источник токенов для любых асинхронных вычислений, созданных после этого момента без какого-либо конкретного токена CancellationToken.

CancellationToken

Создает асинхронное вычисление, которое возвращает объект CancellationToken, управляющий выполнением вычисления.

Catch

Создает асинхронное вычисление. При успешном завершении вычисления этот метод возвращает объект Choice1Of2 с возвращенным значением. Если вычисление создает исключение до своего завершения, этот метод возвращает объект Choice2Of2 с созданным исключением.

DefaultCancellationToken

Получает токен отмены по умолчанию для выполнения асинхронных вычислений.

FromBeginEnd<'T>

Создает асинхронные вычисления, задавая начальную и конечную функцию, например API платформы .NET Framework.

FromBeginEnd<'Arg1,'T>

Создает асинхронные вычисления, задавая начальную и конечную функцию, например API платформы .NET Framework. Эту перегрузку следует использовать, если операция определяется одним аргументом.

FromBeginEnd<'Arg1,'Arg2,'T>

Создает асинхронные вычисления, задавая начальную и конечную функцию, например API платформы .NET Framework. Эту перегрузку следует использовать, если операция определяется двумя аргументами.

FromBeginEnd<'Arg1,'Arg2,'Arg3,'T>

Создает асинхронные вычисления, задавая начальную и конечную функцию, например API платформы .NET Framework. Эту перегрузку следует использовать, если операция определяется тремя аргументами.

FromContinuations

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

Ignore

Создает асинхронное вычисление, которое запускает заданное вычисление и игнорирует его результат.

OnCancel

Создает ограниченный согласованный обработчик отмены для использования в асинхронном рабочем процессе.

Parallel

Создает асинхронное вычисление, которое выполняет все заданные асинхронные вычисления, первоначально ставя каждое из них в очередь в качестве рабочего элемента и используя шаблон разветвлений и соединений.

RunSynchronously

Запускает асинхронное вычисление и ожидает его результата.

Sleep

Создает асинхронное вычисление, которое приостанавливается на указанное время. Объект Timer, используемый для планирования задержки. Данная операция не блокирует потоки операционной системы на период задержки.

Запуск

Начинает асинхронное вычисление в пуле потоков. Не дожидается результата этого вычисления.

StartAsTask

Выполняет вычисление в пуле потоков. Возвращает задачу Task, которая будет завершена в соответствующем состоянии после вычисления (после вывода результата, возникновения исключения или отмены). Если токен отмены не предоставлен, то используется токен отмены по умолчанию.

StartChild

Начинает дочернее вычисление в асинхронном рабочем процессе. Это позволяет одновременно выполнять несколько асинхронных вычислений.

StartChildAsTask

Создает асинхронное вычисление, которое запускает указанное вычисление в качестве задачи Task.

StartImmediate

Немедленно запускает асинхронное вычисление в текущем потоке операционной системы.

StartWithContinuations

Немедленно запускает асинхронное вычисление в текущем потоке операционной системы. Этот метод вызывает одно из трех продолжений по завершении операции.

SwitchToContext

Создает асинхронное вычисление, которое запускает свое продолжение, используя метод Post() предоставленного контекста синхронизации. Если предоставляемый контекст синхронизации имеет значение null, асинхронное вычисление эквивалентно SwitchToThreadPool.

SwitchToNewThread

Создает асинхронное вычисление, которое создает новый поток и запускает свое продолжение в этом потоке.

SwitchToThreadPool

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

TryCancelled

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

Платформы

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

См. также

Ссылки

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

Асинхронные рабочие потоки (F#)

Тип Control.Async<'T> (F#)