我正在尝试使用C# 8提供的新工具更新我的工具集,其中似乎特别有用的一种方法是Task.WhenAll的版本,它返回一个IAsyncEnumerable。该方法应在任务结果可用时立即流式传输,因此将其命名为WhenAll并不太合适。WhenEach听起来更合适。该方法的签名为: public...
我有一个这样签名的控制器方法: public async IAsyncEnumerable<MyDto> Get() 它运行良好,但我需要进行一些请求验证,并相应地返回401、400和其他代码,但它不支持这样做。 或者,以下签名无法编译: public async Task...
我目前有一个Web API,该API从存储库中使用FromSqlRaw(...).ToListAsync()获取一行数据,然后将该数据作为Task<ActionResult<IEnumerable<MyClass>>>类型的Ok(data.ToArray()...
如果可能的话,我想为并行启动的任务创建一个异步枚举器。因此,完成的第一个是枚举器的第一个元素,完成的第二个是枚举器的第二个元素,依此类推。 public static async IAsyncEnumerable<T> ParallelEnumerateAsync(this IE...
我希望知道是否有一种方法可以编写“传递”的IAsyncEnumerable函数...也就是说,该函数将调用另一个IAsyncEnumerable函数并生成所有结果,而无需编写foreach来执行它? 我发现自己经常写这种代码模式。以下是一个示例: async IAsyncEnumerable...
我有三个控制器方法,返回WeatherForecast的IAsyncEnumerable。 第一个方法#1使用SqlConnection,并从异步读取器中生成结果。 第二个方法#2使用EF Core,并具有使用AsAsyncEnumerable扩展的能力。 第三个方法#3使用EF Core和T...
我正在测试 C# 8 的异步流,并且似乎当我尝试使用旧的 async/await 模式并返回 Task>时,应用程序运行速度更快。(我使用了秒表进行了测量,尝试运行多次,结果是我提到的旧模式似乎比使用 IAsyncEnumerable 更快)。 以下是我编写的简单控制台应用程序代码 (...
在测试 C# 8.0 特性时,我遇到了 IAsyncEnumerable。我从 Anthony Chu 的文章中找到了很好的例子 (https://anthonychu.ca/post/async-streams-dotnet-core-3-iasyncenumerable/)。它是异步流和 ...
我有一个可观察对象IObservable<T>/ ISubject<T>,想通过使用SignalR返回它。SignalR有异步流的概念,您必须返回一个IAsyncEnumerable<T>。 如何将IObservable<T>转换为IAsyncE...
如果不使用await任务调用此类方法,我们可以返回以下内容: public Task<bool> GetBoolAsync() { return Task.FromResult(true); } 如何等效地使用 IAsyncEnumerable<> 并避免...