Книга: ASP.NET MVC Framework
Паттерн IAsyncResult
Паттерн IAsyncResult
Паттерн IAsyncResult
предполагает, что разработчик сам создаст асинхронную операцию. Согласно этому паттерну, вместо одного метода действия с именем XXX создаются два метода, BeginXXX и EndXXX, со следующим определением параметров:
public IAsyncResult BeginXXX(Guid? userId, AsyncCallback callback, object state);
public ActionResult EndXXX(IAsyncResult asyncResult);
Этот паттерн работает следующим образом:
1. MVC принимает запрос на выполнение действия xxx.
2. Механизмы MVC и AsyncController вызовут BeginXXX точно так же, как и любое другое синхронное действие.
3. Предполагается, что метод Beginxxx создаст некую тяжеловесную асинхронную операцию, например файловое чтение или запрос к базе данных, и использует переданную через параметры функцию обратного вызова callback
для вызова после завершения асинхронной операции.
4. После выполнения асинхронной операции будет вызван второй метод Endxxx, которому будет передан результат выполнения Beginxxx в виде экземпляра IAsyncResult
.
5. Метод Beginxxx, используя данные, полученные от Beginxxx, формирует обычный для всех действий результат в виде ActionResult
или его производных.
- Паттерн Event
- Паттерн Delegate
- Семантика паттернов
- Исторический очерк о паттерне создания голубого океана
- Паттерны
- Литературная критика и паттерны проектирования
- Примеры паттернов
- Комбинация покупательских паттернов и паттернов продвижения
- Интерфейс System.IAsyncResult
- 19.4.2. Nitro и паттерн MVC
- Функция key в паттернах
- Паттерн проектирования MVC