新的 C# 8.0 和 dotnet core 3 具有 AsyncStreams 这个新功能(IAsyncEnumerable<T>
)。我的理解是它提供了一种异步处理流中项目的方法。但我不能这样做吗IEnumerable<Task<T>>
?
这两种方法有什么区别?
Both Task<IEnumerable<T>>
and IAsyncEnumerable
用于枚举数据或遍历数据列表。但还是有很大的不同。Task<IEnumerable<T>>
一旦集合中的数据准备好发送给调用者,就提供记录。
然而,IAsyncEnumerable
提供准备好的记录,这意味着它将向您发送可用的记录,而不是等待整个集合填满。它允许您使用yield 关键字异步迭代集合,这在C# 8.0 之前是不可能的。
使用异步枚举时,了解什么线程是安全的、什么线程不安全非常重要。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)