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


TaskToAsyncResult.Begin(Task, AsyncCallback, Object) Метод

Определение

Создает новый IAsyncResult объект из указанного Taskобъекта , который при необходимости вызывается callback после завершения задачи.

public:
 static IAsyncResult ^ Begin(System::Threading::Tasks::Task ^ task, AsyncCallback ^ callback, System::Object ^ state);
public static IAsyncResult Begin (System.Threading.Tasks.Task task, AsyncCallback? callback, object? state);
static member Begin : System.Threading.Tasks.Task * AsyncCallback * obj -> IAsyncResult
Public Shared Function Begin (task As Task, callback As AsyncCallback, state As Object) As IAsyncResult

Параметры

task
Task

Объект , Task который необходимо упаковать в IAsyncResult.

callback
AsyncCallback

Обратный вызов, вызываемый после taskзавершения. Если nullзадано значение , обратный вызов не будет вызываться.

state
Object

Состояние, которое должно храниться в IAsyncResult.

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

Объект , IAsyncResult представляющий асинхронную операцию задачи. Этот экземпляр также будет передан в callback при вызове.

Исключения

task имеет значение null.

Комментарии

В сочетании с методами End(IAsyncResult) или End<TResult>(IAsyncResult) этот метод можно использовать для реализации шаблона Begin/End (также известного как шаблон модели асинхронного программирования или APM). Рекомендуется не предоставлять этот шаблон в новом коде; Методы в TaskToAsyncResult предназначены только для реализации таких методов Begin/End, когда они должны быть предоставлены, например, потому, что базовый класс предоставляет виртуальные методы для шаблона или когда они уже были предоставлены и должны оставаться для совместимости. Эти методы позволяют реализовать всю основную асинхронную логику с помощью Tasks, а затем легко реализовать методы Begin/End для этой функции.

Применяется к