【发布时间】:2012-05-22 03:15:23
【问题描述】:
我有一个 linq 查询的订单,像这样:
var sortedList = unsortedList
.OrderBy(foo => foo.GetCurrentValue())
但是,GetCurrentValue 方法响应缓慢(因为它涉及网络通信并且具有相当大的延迟)。据我观察,上面的代码顺序调用方法(调用必须在下一个调用之前完成,所以如果列表很长,排序会很慢。
有没有办法告诉 linq 并行执行?即异步计算表达式,然后在每个人完成后比较结果?
如果没有,知道如何干净、轻松地制作我们自己的实现吗?
【问题讨论】:
-
在 PLINQ
(AsParallel)查询上调用OrderBy将自动将查询视为AsOrdered- msdn.microsoft.com/en-us/library/dd460677.aspx 我不确定这会对性能产生什么影响,MSDN文章对此并不清楚。 -
@Snixtor 这是一个非常有用的链接,它可能会解决我的问题(现在测试)!为什么不将其发布为答案?
标签: c# .net linq sorting asynchronous