"IAsyncEnumerable"上的并行Linq



任何支持在IAsyncEnumerable<T>(.NET Standard 2.1(上使用AsParallel的官方或稳定的第三方库?

由于额外的成本,我不想用异步方法、TaskCompletionSource或其他方法将IAsyncEnumerable<T>包装成IEnumerable<Task<T>>

将并行和异步结合起来没有多大意义。并行的目的是同时使用多个处理器/内核,而异步的目的是根本不使用任何CPU资源。

在枚举IEnumerable占用CPU的情况下,AsParallel(PLINQ(与IEnumerables一起使用。换句话说,当一个MoveNext调用和下一个调用之间必须执行许多CPU指令时。对于IAsyncEnumerables,延迟(通常(不是由MoveNextAsync方法本身的调用引起的,而是由等待返回的ValueTask引起的。等待一个不可用的对象会消耗零CPU资源。你无法控制它何时完成。以Task.Delay(1000)为例。它最快将在一秒钟后完成,除非你找到一种使时空弯曲的方法,否则你不能强迫它在半秒钟内完成。😃

相关内容

  • 没有找到相关文章

最新更新