gpt4 book ai didi

c# - 提前访问 ASP.NET MVC 中的异步操作结果

转载 作者:太空宇宙 更新时间:2023-11-03 18:31:20 24 4
gpt4 key购买 nike

当我们像下面的示例那样在 MVC 中使用异步操作时,后模型数据在 View 中早于 10 秒可用(此处为 1 秒)?我很困惑,如何在 1 秒内获取数据而获取数据却需要 10 秒???

例如:

    public async Task<ActionResult> GetPosts()
{

// ...
IPost posts = await PostService.GetPosts();// assume this take 10 seconds
// ...

return View(model: posts);//BUT we return in 1 second! How posts model available in view for show to the user earlier than 10 seconds?
}

最佳答案

您无法访问 return 1秒内陈述。该方法返回 Task<ActionResult>一旦到达第一个await尚未完成的表达式。在您的异步方法确实到达 return 之前,该任务不会完成(因此您无法获得其结果)声明。

但是当你等待的第一件事完成时,你的异步方法将恢复,从它停止的地方继续直到下一个等待,当它再次“进入休眠”(但不阻塞线程)直到等待已完成等

这就是异步的本质。您只需要区分“异步方法已返回任务”(很快发生)和“异步方法已完成”(通常不会很快发生)。

很难仅用几段话就彻底描述异步 - 我建议您阅读一本好书、观看一段视频或阅读一个好的教程。 MSDN是一个很好的起点。

关于c# - 提前访问 ASP.NET MVC 中的异步操作结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21951851/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com