MVC4 + async / await + возврат ответа до завершения действия

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

Очевидно, я мог бы начать новый поток для обработки файла вручную, но яМне интересно, смогу ли я реализовать этот сценарий, используя механизм async / await, представленный в .net 4.5

Чтобы проверить концепцию ямы пробовали что-то вроде этого:

public async Task Test()
{
    TestAsync();
    return View("Test");
}

public async void TestAsync()
{
    await LongRunning();
}

private Task LongRunning()
{
    return Task.Factory.StartNew(() => Pause());
}

private int Pause()
{
    Thread.Sleep(10000);
    return 3;
}

Механизм асинхронности работает в общем: когда я отлаживаю код, я нажимаювозврат View ("Тестовое задание");» строка перед строкой "возврат 3 ", Однако браузер получает ответ только после завершения метода Pause.

Кажется, это ведет себя как обычные асинхронные контроллеры (те, которые используют методы Async и Completed). Есть ли способ использовать async / await в контроллерах для моего сценария?

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

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