问题标签 [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.

0 投票
1 回答
3487 浏览

c# - 将 linq 类型方法与 IAsyncEnumerable 一起使用的正确方法是什么?

似乎没有任何包含对 .NET Core 打包的 IAsyncEnumerable 的 linq 支持。能够执行 ToList 和 Count 等简单事情的正确方法是什么?

0 投票
4 回答
11230 浏览

c# - 你如何模拟 IAsyncEnumerable?

我想对一个调用另一个服务方法的方法进行单元测试,该方法返回一个IAsyncEnumerable<T>. 我已经为我的服务创建了一个模拟,Mock<MyService>我想设置这个模拟,但我不知道该怎么做。可能吗 ?是否有其他方法可以对调用重新调整的方法的方法进行单元测试IAsyncEnumerable

0 投票
2 回答
3927 浏览

c# - 使用 EnumeratorCancellation 返回 AsyncEnumerable 或循环使用 WithCancellation 有什么区别

我有以下方法从 http 流中读取 csv 文档

以及使用结果的其他方法

我的问题是我应该只在一个地方使用取消令牌吗?是否应该在产生记录之前对取消令牌采取行动,还是 IAsyncEnumerable.WithCancellation() 基本上做同样的事情?如果有,有什么区别?

0 投票
2 回答
31770 浏览

c# - 将 IAsyncEnumerable 转换为 List

所以在 C#8 中我们增加了IAsyncEnumerable接口。

如果我们有一个普通的IEnumerable,我们可以制作一个List或几乎任何我们想要的其他集合。感谢那里的Linq。

好吧,现在我想将 my 转换IAsyncEnumerable为 a List,当然这也是异步的。这种情况下是否已经有 Linq 实现?如果没有,那我怎么能自己转换呢?

0 投票
3 回答
8605 浏览

c# - 创建空的 IAsyncEnumerable

我有一个这样写的界面:

我想编写一个不返回任何项目的空实现,如下所示:

如果它是一个普通的 IEnumerable,我会return Enumerable.Empty<string>();,但我没有找到任何AsyncEnumerable.Empty<string>().

解决方法

我发现这行得通,但很奇怪:

任何想法?

0 投票
2 回答
2717 浏览

c# - 如何等待多个 IAsyncEnumerable

我们有这样的代码:

我需要开始await foreach每个asyncEnumerable的条目。每个循环迭代都应该相互等待,当每次迭代完成时,我需要收集每个迭代的数据并通过另一种方法处理。

我可以通过 TPL 以某种方式实现这一目标吗?否则,你不能给我一些想法吗?

0 投票
1 回答
12795 浏览

c# - 从异步方法返回 IAsyncEnumerable

采取以下方法:

我想知道最佳实践是什么,做什么,上面的代码试图做什么。基本上IAsyncEnumerableasync方法返回一个。

对于我自己,我可以想象两种方式:

  1. 迭代IAsyncEnumerable并立即返回结果。
  1. 创建一个可以IAsyncEnumerable临时存储的结构,这似乎是更好的解决方案,但仍然有点矫枉过正。

有没有更好的方法来实现这种行为?

0 投票
2 回答
1280 浏览

c# - IAsyncEnumerable 中缺少 await 运算符时的警告消息

在不执行await任务的情况下调用这样的方法时,我们可以返回以下内容:

什么是等效的 aIAsyncEnumerable<>并避免警告。

警告 CS1998 此异步方法缺少“等待”运算符,将同步运行。考虑使用 'await' 运算符来等待非阻塞 API 调用,或使用 'await Task.Run(...)' 在后台线程上执行 CPU 密集型工作。

0 投票
2 回答
2702 浏览

c# - 为什么使用 IAsyncEnumerable 比返回异步/等待任务慢?

我目前正在测试 C# 8 的异步流,似乎当我尝试使用使用 async/await 并返回 Task> 的旧模式运行应用程序时,它似乎更快。(我使用秒表测量它并尝试多次运行它,结果是我提到的旧模式似乎比使用 IAsyncEnumerable 快一些)。

这是我编写的一个简单的控制台应用程序(我也在想我可能以错误的方式从数据库中加载数据)

我想知道 IAsyncEnumerable 是否最适合这种情况,或者我在使用 IAsyncEnumerable 时查询数据的方式有问题?我可能错了,但我实际上希望使用 IAsyncEnumerable 会更快。(顺便说一句......差异通常以数百毫秒为单位)

我使用 10,000 行的样本数据尝试了该应用程序。

这也是填充数据的代码,以防万一......

0 投票
2 回答
2805 浏览

c# - IAsyncEnumerable 的传递?

我想知道是否有一种方法可以编写一个函数来“通过”一个 IAsyncEnumerable ......也就是说,该函数将调用另一个 IAsyncEnumerable 函数并产生所有结果而无需编写 aforeach来执行它?

我发现自己经常编写这种 Code Pattern。这是一个例子:

无论出于何种原因(由于分层设计),我的函数MyFunction都想要调用MyStringEnumerator,但随后无需干预即可产生所有内容。我必须继续编写这些foreach循环才能做到这一点。如果是,IEnumerable我会退回IEnumerable. 如果它是 C++,我可以编写一个宏来完成它。

什么是最佳做法?