【问题标题】:In PLINQ, what is the difference between .AsSequential() and .AsOrdered()?在 PLINQ 中,.AsSequential() 和 .AsOrdered() 有什么区别?
【发布时间】:2013-08-03 01:43:59
【问题描述】:

我似乎无法理解 AsSequential 和 AsOrdered 之间的区别。我已经在 msdn 上查找了这些文档以及在 Internet 上搜索示例,但我只是一个简单的鞋匠,我无法明确理解发生了什么。 如果可能的话,有人可以解释一下你什么时候使用 AsSequential 和 AsOrdered,如果有必要解释一下结果会有什么不同?

【问题讨论】:

    标签: c# plinq


    【解决方案1】:

    AsOrdered 指示并行 LINQ 引擎保留排序,但仍并行执行查询。这会影响性能,因为引擎必须在并行执行后仔细合并结果。

    AsSequential 指示并行 LINQ 引擎顺序执行查询,即不并行执行。

    【讨论】:

    • 感谢您的回复。那么 AsSequential 是否覆盖了 AsParallel? AsSequential 会有什么类型的用例?是为了防止它以 AsParallel 运行吗?
    • 当您有一个非常复杂的查询时,您可以指定使用一般的并行。并且在查询的某些部分,可以选择顺序执行(用AsSequential)
    • @Ozkan 你能举个例子吗?
    • 文档这样说:“这个例子展示了如何使用 AsSequential 方法来指示 PLINQ 按顺序处理查询中的所有 subsequent 运算符。” docs.microsoft.com/en-us/dotnet/standard/parallel-programming/…
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-01-22
    • 1970-01-01
    • 1970-01-01
    • 2012-12-20
    • 2020-03-09
    • 1970-01-01
    相关资源
    最近更新 更多