首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在ASP.NET核心web应用程序中,如果任务按预期运行,我如何执行异步任务,将消息返回给用户,然后执行另一个任务?

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

Stack Overflow用户
提问于 2019-10-18 03:02:47
回答 1查看 56关注 0票数 1

在ASP.NET Core2.2RazorPages应用程序中,我希望执行一个冗长的任务,然后立即向客户端返回一条消息,如果长期运行的任务按预期完成,则执行另一个任务。

  • Task是一个长期运行的脚本,它创建数据库
  • Task,如果结果与预期相同,则在任务A完成后将一些数据插入到数据库表中。

我尝试了下面的代码,但是它似乎会导致应用程序挂起长时间运行的任务的整个长度。

代码语言:javascript
复制
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();
}
EN

回答 1

Stack Overflow用户

发布于 2019-10-18 11:36:35

async-await不会改变HTTP的工作方式:一个请求有一个响应。

如果需要服务器向客户端发送请求响应以外的其他内容,请使用类似于SignalR的内容。

票数 -1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/58443367

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档