考虑以下示例。result.AddRange(
data.AsParallel()
.Where(cs => cs is internalHistorySet)
.Select(matchingItem => new History(source, (internalHistorySet)matchingItem)));我对代码有两个问题:only会AsParallel()影响查询本身吗?IMO 如果这些项目被并行添加,因为AddRange只需要一个IEnumerable. 我理解代码的方式是它只是并行执行查询,这意味着查询本身可能比不使用 AsParallel 更快。但是,AddRange其本身的性能不会改变,因为它不受影响。立场重要吗AsParallel()?如果放在查询的末尾,结果会一样吗?问候和感谢
1 回答
SMILET
TA贡献1796条经验 获得超4个赞
AsParallel() 只影响查询本身吗?
是的。
但是,AddRange 本身的性能不会改变,因为它不受影响。
正确的。我的意思是,AddRange
可能需要更长的时间,但那是因为 LINQ 查询以不同的方式提供可枚举(正在迭代)。性能差异是由于 LINQ 查询而不是AddRange
其本身造成的。
如果放在查询的末尾,结果会一样吗?
AsParallel
如果放在最后就没有任何意义了。只影响LINQ 查询中它后面的AsParallel
内容。之后什么都没有==毫无意义。
- 1 回答
- 0 关注
- 108 浏览
添加回答
举报
0/150
提交
取消