1

使用 PLINQ C# 并行查询是有序或无序的,具体取决于您如何构建它们。在 MSDN 上有一些关于 PLINQ 中订单保存的信息。

我发现这令人困惑且难以管理。在我看来,顺序重要的集合是序列,而顺序不重要的集合是袋子(或者如果没有重复,那么它们可能是集合)。

对包和序列的操作是不同的,并且具有不同的复杂性特征,尤其是在作为并行算法实现时。

换句话说,我认为有序和无序的集合应该是不同的类型,这会简化事情。是否有理由将 PLINQ 中的所有内容统一为简单的“ParallelQuery()”?

4

1 回答 1

2

是否有理由将 PLINQ 中的所有内容统一为简单的“ParallelQuery()”

它更简单。我想有两种类型是可能的,但费用相当可观。它会更容易使用吗?

当您在 Parallel 中处理序列时,默认情况下您放弃 Order。您应该知道重新建立序列是昂贵的,并且它应该需要一些额外的步骤。

但是当您需要它时,添加一个.AsOrdered()似乎比先将您的数据复制(!)到另一个集合要少得多。

于 2012-04-07T22:11:59.983 回答