Это, однако, ждет все 10 секунд, прежде чем перенаправить меня на мое действие «Index, Home».
blockquote>Правильно, это потому, что
await
асинхронно ждет завершения операций , Он вернет поток обратно в пул, пока операция не завершится.Как заставить приложение вернуться к этому действию, а waitTimer выполняется в фоновом режиме?
blockquote>Task.Run опасен в том, что он не регистрирует работу с IIS , что может привести к проблемам . Вместо этого вы можете использовать BackgroundTaskManager или HangFire , которые регистрируют его выполнение с помощью ASP.NET:
BackgroundTaskManager.Run(() => { waitTimer() }; return RedirectToAction("Index", "Home");