问题标签 [iasyncenumerable]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
c# - 将 linq 类型方法与 IAsyncEnumerable 一起使用的正确方法是什么?
似乎没有任何包含对 .NET Core 打包的 IAsyncEnumerable 的 linq 支持。能够执行 ToList 和 Count 等简单事情的正确方法是什么?
c# - 你如何模拟 IAsyncEnumerable?
我想对一个调用另一个服务方法的方法进行单元测试,该方法返回一个IAsyncEnumerable<T>
. 我已经为我的服务创建了一个模拟,Mock<MyService>
我想设置这个模拟,但我不知道该怎么做。可能吗 ?是否有其他方法可以对调用重新调整的方法的方法进行单元测试IAsyncEnumerable
c# - 使用 EnumeratorCancellation 返回 AsyncEnumerable 或循环使用 WithCancellation 有什么区别
我有以下方法从 http 流中读取 csv 文档
以及使用结果的其他方法
我的问题是我应该只在一个地方使用取消令牌吗?是否应该在产生记录之前对取消令牌采取行动,还是 IAsyncEnumerable.WithCancellation() 基本上做同样的事情?如果有,有什么区别?
c# - 将 IAsyncEnumerable 转换为 List
所以在 C#8 中我们增加了IAsyncEnumerable
接口。
如果我们有一个普通的IEnumerable
,我们可以制作一个List
或几乎任何我们想要的其他集合。感谢那里的Linq。
好吧,现在我想将 my 转换IAsyncEnumerable
为 a List
,当然这也是异步的。这种情况下是否已经有 Linq 实现?如果没有,那我怎么能自己转换呢?
c# - 创建空的 IAsyncEnumerable
我有一个这样写的界面:
我想编写一个不返回任何项目的空实现,如下所示:
如果它是一个普通的 IEnumerable,我会return Enumerable.Empty<string>();
,但我没有找到任何AsyncEnumerable.Empty<string>()
.
解决方法
我发现这行得通,但很奇怪:
任何想法?
c# - 如何等待多个 IAsyncEnumerable
我们有这样的代码:
我需要开始await foreach
每个asyncEnumerable
的条目。每个循环迭代都应该相互等待,当每次迭代完成时,我需要收集每个迭代的数据并通过另一种方法处理。
我可以通过 TPL 以某种方式实现这一目标吗?否则,你不能给我一些想法吗?
c# - 从异步方法返回 IAsyncEnumerable
采取以下方法:
我想知道最佳实践是什么,做什么,上面的代码试图做什么。基本上IAsyncEnumerable
从async
方法返回一个。
对于我自己,我可以想象两种方式:
- 迭代
IAsyncEnumerable
并立即返回结果。
- 创建一个可以
IAsyncEnumerable
临时存储的结构,这似乎是更好的解决方案,但仍然有点矫枉过正。
有没有更好的方法来实现这种行为?
c# - IAsyncEnumerable 中缺少 await 运算符时的警告消息
在不执行await
任务的情况下调用这样的方法时,我们可以返回以下内容:
什么是等效的 aIAsyncEnumerable<>
并避免警告。
警告 CS1998 此异步方法缺少“等待”运算符,将同步运行。考虑使用 'await' 运算符来等待非阻塞 API 调用,或使用 'await Task.Run(...)' 在后台线程上执行 CPU 密集型工作。
c# - 为什么使用 IAsyncEnumerable 比返回异步/等待任务慢?
我目前正在测试 C# 8 的异步流,似乎当我尝试使用使用 async/await 并返回 Task> 的旧模式运行应用程序时,它似乎更快。(我使用秒表测量它并尝试多次运行它,结果是我提到的旧模式似乎比使用 IAsyncEnumerable 快一些)。
这是我编写的一个简单的控制台应用程序(我也在想我可能以错误的方式从数据库中加载数据)
我想知道 IAsyncEnumerable 是否最适合这种情况,或者我在使用 IAsyncEnumerable 时查询数据的方式有问题?我可能错了,但我实际上希望使用 IAsyncEnumerable 会更快。(顺便说一句......差异通常以数百毫秒为单位)
我使用 10,000 行的样本数据尝试了该应用程序。
这也是填充数据的代码,以防万一......
c# - IAsyncEnumerable 的传递?
我想知道是否有一种方法可以编写一个函数来“通过”一个 IAsyncEnumerable ......也就是说,该函数将调用另一个 IAsyncEnumerable 函数并产生所有结果而无需编写 aforeach
来执行它?
我发现自己经常编写这种 Code Pattern。这是一个例子:
无论出于何种原因(由于分层设计),我的函数MyFunction
都想要调用MyStringEnumerator
,但随后无需干预即可产生所有内容。我必须继续编写这些foreach
循环才能做到这一点。如果是,IEnumerable
我会退回IEnumerable
. 如果它是 C++,我可以编写一个宏来完成它。
什么是最佳做法?