考慮以下示例。result.AddRange(
data.AsParallel()
.Where(cs => cs is internalHistorySet)
.Select(matchingItem => new History(source, (internalHistorySet)matchingItem)));我對(duì)代碼有兩個(gè)問(wèn)題:only會(huì)AsParallel()影響查詢(xún)本身嗎?IMO 如果這些項(xiàng)目被并行添加,因?yàn)锳ddRange只需要一個(gè)IEnumerable. 我理解代碼的方式是它只是并行執(zhí)行查詢(xún),這意味著查詢(xún)本身可能比不使用 AsParallel 更快。但是,AddRange其本身的性能不會(huì)改變,因?yàn)樗皇苡绊?。立?chǎng)重要嗎AsParallel()?如果放在查詢(xún)的末尾,結(jié)果會(huì)一樣嗎?問(wèn)候和感謝
1 回答

SMILET
TA貢獻(xiàn)1796條經(jīng)驗(yàn) 獲得超4個(gè)贊
AsParallel() 只影響查詢(xún)本身嗎?
是的。
但是,AddRange 本身的性能不會(huì)改變,因?yàn)樗皇苡绊憽?/p>
正確的。我的意思是,AddRange
可能需要更長(zhǎng)的時(shí)間,但那是因?yàn)?LINQ 查詢(xún)以不同的方式提供可枚舉(正在迭代)。性能差異是由于 LINQ 查詢(xún)而不是AddRange
其本身造成的。
如果放在查詢(xún)的末尾,結(jié)果會(huì)一樣嗎?
AsParallel
如果放在最后就沒(méi)有任何意義了。只影響LINQ 查詢(xún)中它后面的AsParallel
內(nèi)容。之后什么都沒(méi)有==毫無(wú)意義。
- 1 回答
- 0 關(guān)注
- 148 瀏覽
添加回答
舉報(bào)
0/150
提交
取消