У меня есть приложение ASP.NET MVC, написанное на C#. Один из моих действий выглядит следующим образом:Выполнить код асинхронно в C#
[HttpPost]
public async Task<ActionResult> Save(int id, MyViewModel viewModel)
{
viewModel.SaveToDb();
await Backup.Save(viewModel);
return View(viewModel);
}
...
public class Backup
{
async public static Task Save(IBackup item)
{
// do stuff
}
}
Существует на самом деле очень много происходит в функции Backup.Save. Фактически, await Backup.Save(...)
в настоящее время занимает 10 секунд. По этой причине я хочу запустить его в фоновом режиме (асинхронно), а не (а) ждать на нем. Я думал, что если я просто удалю ключевое слово await
, это сработает. Однако, похоже, это не так.
Как запустить резервное копирование сохраняет асинхронно в фоновом режиме, чтобы мои пользователи могли продолжать использовать приложение без длительного ожидания?
Спасибо!
Вам нужен надежный метод создания фоновой работы в ASP.NET, как описано [здесь] (http://www.hanselman.com/blog/HowToRunBackgroundTasksInASPNET.aspx). – mason
Узнайте о TPL, task.run(), – Gilad
Это не то, что async/await для – Jonesopolis