21得票2回答
如何等待从IAsyncEnumerable<>返回的所有结果?

我正在研究C# 8.0中的新IAsyncEnumerable&lt;T&gt;功能。假设我有一个方法需要使用: public IAsyncEnumerable&lt;T&gt; SomeBlackBoxFunctionAsync&lt;T&gt;(...) { ... } 我知道可以使用...

8得票2回答
为什么使用IAsyncEnumerable比返回async/await Task<T>更慢?

我正在测试 C# 8 的异步流,并且似乎当我尝试使用旧的 async/await 模式并返回 Task&gt;时,应用程序运行速度更快。(我使用了秒表进行了测量,尝试运行多次,结果是我提到的旧模式似乎比使用 IAsyncEnumerable 更快)。 以下是我编写的简单控制台应用程序代码 (...

8得票1回答
IAsyncEnumerable和数据库查询

我有三个控制器方法,返回WeatherForecast的IAsyncEnumerable。 第一个方法#1使用SqlConnection,并从异步读取器中生成结果。 第二个方法#2使用EF Core,并具有使用AsAsyncEnumerable扩展的能力。 第三个方法#3使用EF Core和T...

9得票2回答
IAsyncEnumerable中的Pass-through?

我希望知道是否有一种方法可以编写“传递”的IAsyncEnumerable函数...也就是说,该函数将调用另一个IAsyncEnumerable函数并生成所有结果,而无需编写foreach来执行它? 我发现自己经常写这种代码模式。以下是一个示例: async IAsyncEnumerable...

12得票5回答
如何实现一个高效的 WhenEach,它可以流式处理一个返回任务结果的 IAsyncEnumerable?

我正在尝试使用C# 8提供的新工具更新我的工具集,其中似乎特别有用的一种方法是Task.WhenAll的版本,它返回一个IAsyncEnumerable。该方法应在任务结果可用时立即流式传输,因此将其命名为WhenAll并不太合适。WhenEach听起来更合适。该方法的签名为: public...

7得票3回答
IAsyncEnumerable或IAsyncEnumerator的工厂

我想知道是否有一种方法可以通过Source对象创建IAsyncEnumerable&lt;T&gt;或者IAsyncEnumerator&lt;T&gt;,就像TaskCompletionSource允许我们为任务做的那样。特别地,TaskCompletionSource可以像任何其他参数一样...

9得票4回答
如何使用C#8中的IAsyncEnumerable<T>来异步枚举并行运行的任务

如果可能的话,我想为并行启动的任务创建一个异步枚举器。因此,完成的第一个是枚举器的第一个元素,完成的第二个是枚举器的第二个元素,依此类推。 public static async IAsyncEnumerable&lt;T&gt; ParallelEnumerateAsync(this IE...

46得票2回答
IAsyncEnumerable的Linq方法

在使用 IEnumerable&lt;T&gt; 时,可以使用来自 System.Linq 命名空间的内置扩展方法,如 Skip、Where 和 Select。 当 Microsoft 在 C#8 中添加了 IAsyncEnumerable 时,是否也添加了新的 Linq 方法来支持它? ...

7得票1回答
将 IObservable<T> 转换为 IAsyncEnumerable<T> 是否可行?

我有一个可观察对象IObservable&lt;T&gt;/ ISubject&lt;T&gt;,想通过使用SignalR返回它。SignalR有异步流的概念,您必须返回一个IAsyncEnumerable&lt;T&gt;。 如何将IObservable&lt;T&gt;转换为IAsyncE...

145得票9回答
“await yield return DoSomethingAsync()”是否可行?(涉及IT技术)

用正常的迭代器块(即"yield return")是否与"async"和"await"不兼容? 这很好地说明了我的尝试:async Task&lt;IEnumerable&lt;Foo&gt;&gt; Method(String [] Strs) { // I want to com...