Asp.net core 在ASP.NET核心web应用程序中,如果任务按预期运行,如何执行异步任务向用户返回消息,然后执行另一个任务?

Asp.net core 在ASP.NET核心web应用程序中,如果任务按预期运行,如何执行异步任务向用户返回消息,然后执行另一个任务?,asp.net-core,async-await,Asp.net Core,Async Await,在ASP.NET Core 2.2 Razor pages应用程序中,我希望执行一个较长的任务,然后立即向客户端返回一条消息,如果长时间运行的任务按预期完成,则执行另一个任务 任务A是创建数据库的长时间运行的脚本 如果结果符合预期,则任务B在任务A完成后将一些数据插入数据库表 我尝试了下面的代码,但它似乎会导致应用程序在长时间运行的任务的整个过程中挂起 public异步任务OnPost() { if(ModelState.IsValid) { 任务任务A=sql操作A(); 任务A.Cont

在ASP.NET Core 2.2 Razor pages应用程序中,我希望执行一个较长的任务,然后立即向客户端返回一条消息,如果长时间运行的任务按预期完成,则执行另一个任务

  • 任务A是创建数据库的长时间运行的脚本
  • 如果结果符合预期,则任务B在任务A完成后将一些数据插入数据库表
我尝试了下面的代码,但它似乎会导致应用程序在长时间运行的任务的整个过程中挂起

public异步任务OnPost()
{
if(ModelState.IsValid)
{
任务任务A=sql操作A();
任务A.ContinueWith(异步结果=>{
如果(等待结果>0)
sql_操作b());
});
请求成功=真;
StatusMessage=“任务A成功,请留出2-3分钟时间查看结果。”;
}
返回页();
}

异步等待
不会改变HTTP的工作方式:1个请求有1个响应

如果您需要服务器向客户机发送请求响应以外的内容,请使用类似signar的方法