В приложении ASP.NET Core 2.2 Razor Pages я хочу выполнить длинную задачу, затем немедленно вернуть клиенту сообщение, затем выполнить другую задачу ЕСЛИ длиннуювыполнение задач завершается, как и ожидалось.
- Задача A - это долгосрочный сценарий, который создает базу данных
- Задача B вставляет некоторые данные в таблицы базы данных после завершения задачи A, если результаткак и ожидалось.
Я попробовал приведенный ниже код, но, похоже, приложение зависает на всю длину долго выполняющейся задачи.
public async Task<IActionResult> OnPost()
{
if (ModelState.IsValid)
{
Task<int> TASK_A = sql_operationA();
TASK_A.ContinueWith(async result => {
if (await result > 0)
sql_operationB());
});
RequestSuccess = true;
StatusMessage = "TASK A WAS A SUCCESS PLEASE ALLOW 2-3 MINUTES TO SEE YOUR RESULTS.";
}
return Page();
}