返回介绍

如何:合并并行和顺序 LINQ 查询

发布于 2025-02-23 23:16:19 字数 1295 浏览 0 评论 0 收藏 0

此示例演示如何使用 AsSequential 方法来指示 PLINQ 查询中的所有后续运算符按顺序处理。 尽管顺序处理是通常比并行速度慢,但有时很必要生成正确的结果。

警告

本示例旨在演示用法,运行速度可能不如等效的顺序 LINQ to Objects 查询快。 有关加速的详细信息,请参阅 了解 PLINQ 中的加速 。

示例

下面的示例演示一种情况,在其中 AsSequential 是必需的即到保留在查询的前一个子句中已建立的排序。

// Paste into PLINQDataSample class.
static void SequentialDemo()
{
  var orders = GetOrders();
  var query = (from ord in orders.AsParallel()
         orderby ord.CustomerID
         select new
         {
           Details = ord.OrderID,
           Date = ord.OrderDate,
           Shipped = ord.ShippedDate
         }).
            AsSequential().Take(5);
}
' Paste into PLINQDataSample class
Shared Sub SequentialDemo()

  Dim orders = GetOrders()
  Dim query = From ord In orders.AsParallel()
         Order By ord.CustomerID
         Select New With
         {
           ord.OrderID,
           ord.OrderDate,
           ord.ShippedDate
         }

  Dim query2 = query.AsSequential().Take(5)

  For Each item In query2
    Console.WriteLine("{0}, {1}, {2}", item.OrderDate, item.OrderID, item.ShippedDate)
  Next
End Sub

编译代码

若要编译并运行此代码,将其粘贴到 PLINQ 数据示例 项目中,添加行,以调用方法中的,从 Main ,并按 F5。

另请参阅

并行 LINQ (PLINQ)

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据
    我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
    原文