ASP.NET MVC 4 Асинхронный обратный вызов контроллера

Я просто использую новые функции Async Controller в MVC 4, как описано здесьhttp://www.asp.net/mvc/tutorials/mvc-4/using-asynchronous-methods-in-aspnet-mvc-4

Если у меня есть действие, выполнение которого может занять 10-20 секунд, я хотел бы предоставить какую-то строку состояния, чтобы уведомить пользователя о прогрессе. Есть ли у функций Async что-нибудь, чтобы помочь этому?

РЕДАКТИРОВАТЬ: я сделаю удар, как я буду пытаться сделать это и посмотреть, есть ли какие-либо способы лучше

public async Task<ActionResult> 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 = "";

....

<script>

setTimeout(displayStatus, 1000);

function displayStatus() {
  $.post("/controller/status", function(data) {
    alert(data.Status);
  });
}

</script>

Ответы на вопрос(2)

Ваш ответ на вопрос