有人能讲解一下Linq中的并行计算在“TakeWhile”时的机制吗。。

phommy phommy 墨衍会员 · AI 创作全网分发 墨衍智能分发 通过墨衍一键同步至各平台 可同步平台 CSDN微信公众号微博知乎掘金百家号博客园抖音小红书 你的文章也可以这样分发 墨衍会员 ¥399起/年,写一次发全网 我也要 + 加入社区
看到 ParallelQuery<> 有个扩展方法 TakeWhile<>,想不通它的机制是如何的

比如一个序列:
Enumerable.Range(1,100).AsParallel().Select( i=> {这里是一个复杂操作; return i;} )

我对它 TakeWhile(m => m < 10) 的时候碰巧9、10、11三个数同时在计算,结果10先跑到了TakeWhile,那9和11还会输出吗?
我当然希望输出9、不输出11;但对于11的那个“复杂操作”已经在计算中了,那个线程会被强行中止吗?还是说那个线程顺利执行完、但返回的数据(11)被舍弃掉了?再或者说这个TakeWhile返回的序列中就包括这个11呢?


最后,当我对别人给我的一个 IEnumerable 做TakeWhile时,是不是要判断它是否为 ParallelQuery 呢?
...全文

相关推荐

C#编程 数据库操作应用 TakeWhile(源码)(源码)

C#编程 数据库操作应用 TakeWhile(源码)(源码)C#编程 数据库操作应用 TakeWhile(源码)(源码)C#编程 数据库操作应用 TakeWhile(源码)(源码)C#编程 数据库操作应用 TakeWhile(源码)(源码)C#编程 数据库操作应用 TakeWhile(源码)(源码)C#编程 数据库操作应用 TakeWhile(源码)(源码)C#编程 数据库操作应用 TakeWhile(源码)(源码)C#编程 数据库操作应用 TakeWhile(源码)(源码)C#编程 数据库操作应用 TakeWhile(源码)(源码)C#编程 数据库操作应用 TakeWhile(源码)(源码)C#编程 数据库操作应用 TakeWhile(源码)(源码)C#编程 数据库操作应用 TakeWhile(源码)(源码)C#编程 数据库操作应用 TakeWhile(源码)(源码)C#编程 数据库操作应用 TakeWhile(源码)(源码)C#编程 数据库操作应用 TakeWhile(源码)(源码)C#编程 数据库操作应用 TakeWhile(源码)(源码)C#编程 数据库操作应用 TakeWhi

大富大贵7

linq 学习笔记与详解

linq 学习笔记与详解,是初学者不可或缺的好东西,一定要珍惜。

nfhalj

LINQ练习笔记合集压缩包

LINQ练习笔记合集压缩包

weixin_58579833

linq_standard_query_operators

Restriction Operators Projection Operators Partitioning Operators Join Operators Concatenation Operators Ordering Operators Grouping Operators Set Operators Conversion Operators Equality Operators Element Operators Generation Operators Quantifiers Aggregate Operators

问题小心

Linq操作符27个常用说明.docx

Linq操作符27个常用说明,对Linq to OBJECT进行了详细说明,包括Where,Select,SelectMany,Take,TakeWhile,Skip,SkipWhile,Concat,OrderBy,OrderByDescending,ThenBy等

qq_36050961
评论 8
收藏 已收藏
分享
返回顶部
phommy
C# 111,129 成员 642,539 内容