.NET Core 3.0中IAsyncEnumerable有什么用处


这篇文章主要讲解了“.NET Core 3.0中IAsyncEnumerable有什么用处”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“.NET Core 3.0中IAsyncEnumerable有什么用处”吧!在本文中,我们将了解IAsyncEnumerable要解决哪些挑战,如何在我们自己的应用程序中实现它,以及为什么IAsyncEnumerable将在很多情况下取代Task>。也许最好的证明IAsyncEnumerable 有用的方式是看看在没有它的时候所面临的的困难。比如首先有这样一段代码,按页面获取所有喜欢的帖子:然后有另一段代码调用上面这段代码:注意,上面这个方法有一个问题,我们对每个页面的结果进行循环并放入List中,最后返回整个结果。假设有上亿个page页面的的帖子,那么所有这上亿个page页面的帖子都需要在返回值之前被加载。显然是非常低效的。也许我们可以不使用Task来替换上面的方法:在上面代码中,返回IEnumerable的方法可以使用yield return语句将每个数据片段返回给调用者。但是,请勿这样做!上面的代码意味着如果我们从异步方法中调用第三个函数,线程池将持续迭代返回的IEnumerable,直到其完成,也就是说当有足够多的并发访问同一个线程,势必会造成阻塞。如果我们可以用异步方法来使用yield return就好了!可惜那是不可能的……直到现在。这个时候IAsyncEnumerable 就该出场啦!!!!!!IAsyncEnumerable是在.NET Core 3 (.NET Standard 2.1)引入的。它公开了一个枚举器,该枚举器具有可以等待的MoveNextAsync()方法。这意味着生产者可以在产生结果之间进行异步调用。与返回任务>不同,我们的方法现在可以返回IAsyncEnumerable,并使用yield return来发送数据为了使用结果,我们需要使用c# 8中新的await foreach()语法:这个好多了。该方法生成可用的数据。调用代码以自己的节奏使用数据。从.NET Core 3.0 Preview 7 开始,ASP.NET就能够从API控制器动作中返回IAsyncEnumerable,这意味着我们可以直接返回方法的结果——有效地将数据从数据库流到HTTP响应。随着时间的 香港云主机推移,随着.NET Core3.0和.NET Standard2.1的发展,我们将会看到IAsyncEnumerable被用在我们通常使用Task>的地方。感谢各位的阅读,以上就是“.NET Core 3.0中IAsyncEnumerable有什么用处”的内容了,经过本文的学习后,相信大家对.NET Core 3.0中IAsyncEnumerable有什么用处这一问题有了更深刻的体会,具体使用情况还需要大家实践验证。这里是开发云,小编将为大家推送更多相关知识点的文章,欢迎关注!

相关推荐: spark如何合并github

小编给大家分享一下spark如何合并github,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧!最近在做内部spark版本升级的工作,涉及到github 上合并pr的工作,具体的是spark 2.x升级到spark 3.0.1时兼容hdfs c…

免责声明:本站发布的图片视频文字,以转载和分享为主,文章观点不代表本站立场,本站不承担相关法律责任;如果涉及侵权请联系邮箱:360163164@qq.com举报,并提供相关证据,经查实将立刻删除涉嫌侵权内容。

Like (0)
Donate 微信扫一扫 微信扫一扫
Previous 10/09 20:57
Next 10/09 20:57

相关推荐