Я просто использую новые функции асинхронного контроллера в MVC 4, как описано здесь http://www.asp.net/mvc/tutorials/mvc-4/using-asynchronous-methods-in-aspnet-mvc-4
. Если у меня есть действие, выполнение которого может занять 10 -20 секунд, я хотел бы предоставить какую-то строку состояния, чтобы уведомлять пользователя о ходе выполнения. Есть ли что-нибудь, что может помочь в этом функциям Async?
РЕДАКТИРОВАТЬ :Я попытаюсь сделать это и посмотрю, есть ли лучшие способы
public async Task GizmosAsync()
{
return View("Gizmos", await GetGizmosAsync());
}
private void GetGizmosAsync()
{
for(int i=0; i<10; i++)
{
lock(_locker)
{
_statusMessage = String.Format("{0} of 10", i);
}
DoSomethingLongRunning();
}
}
public ActionResult Status()
{
return Json(new { Status = _statusMessage });
}
static readonly object _locker = new object();
static string _statusMessage = "";
....