强制 Linq 不延迟执行

2023-12-31

其实这个问题和这篇文章是同一个问题:

如何确保 LINQ 查询在 DAL 中调用时执行,而不是以延迟方式执行? https://stackoverflow.com/q/1013201/75642

但既然他没有解释why他想要它,这个问题似乎被忽略了一点。这是我的类似但更好解释的问题:

我有一些两种类型的线程(暂时忽略 UI 线程)。有“数据收集”线程类型和“计算”线程类型。数据收集线程很慢。有相当多的数据需要从不同的地方进行筛选。计算线程相对较快。到目前为止的设计模型是发送数据收集线程来查找数据,并在完成后将数据传递出去进行计算。

当我在 Linq 中对数据收集进行编码时,我最终发现了一些缓慢的情况回到我的计算线程。现在有些数据元素只有在计算过程中使用时才能得到完全解析——这就是一个问题。

我想强制 Linq 在给定时间完成其工作(语句结束?方法结束?“请完成,该死”方法调用),这样我就知道我以后不会为此付费。将“.ToList()”添加到 Linq 的末尾是 1. 尴尬的,并且 2. 感觉就像装箱了一些即将在另一个线程中拆箱的东西。


你不会对任何东西进行拳击——你会缓冲结果。

Using ToList()如果您确实想要数据,基本上就是要走的路。除非您准备好立即使用数据,否则必须对其进行缓冲某处,不是吗?列表只是一种方便的方法。

另一种方法是当场进行处理——在生成数据时立即使用数据。我没有完全遵循事物的不同线程方面,所以我不清楚这是否会对您有帮助,但据我所知,这些基本上是您可以选择的。

这实际上是somewhat您的描述中明确:

到目前为止的设计模型是 将数据收集线程发送到 查找数据,当数据完成时 传递数据进行计算。

Calling ToList()基本上将您返回的内容从“可以在要求时获取数据的查询”更改为“数据本身,缓冲在列表中”。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

强制 Linq 不延迟执行 的相关文章

  • C 编程 - 文件 - fwrite

    我有一个关于编程和文件的问题 while current NULL if current gt Id Doctor 0 current current gt next id doc current gt Id Doctor if curre
  • 没有强命名的代码签名是否会让您的应用程序容易被滥用?

    尝试了解authenticode代码签名和强命名 我是否正确地认为 如果我对引用一些 dll 非强命名 的 exe 进行代码签名 恶意用户就可以替换我的 DLL 并以看似由我签名但正在运行的方式分发应用程序他们的代码 假设这是真的 那么您似
  • 按成员序列化

    我已经实现了template
  • 不支持将数据直接绑定到存储查询(DbSet、DbQuery、DbSqlQuery)

    正在编码视觉工作室2012并使用实体模型作为我的数据层 但是 当页面尝试加载时 上面提到的标题 我使用 Linq 语句的下拉控件往往会引发未处理的异常 下面是我的代码 using AdventureWorksEntities dw new
  • Asp.NET WebApi 中类似文件名称的路由

    是否可以在 ASP NET Web API 路由配置中添加一条路由 以允许处理看起来有点像文件名的 URL 我尝试添加以下条目WebApiConfig Register 但这不起作用 使用 URIapi foo 0de7ebfa 3a55
  • 嵌套接口:将 IDictionary> 转换为 IDictionary>?

    我认为投射一个相当简单IDictionary
  • 类模板参数推导 - clang 和 gcc 不同

    下面的代码使用 gcc 编译 但不使用 clang 编译 https godbolt org z ttqGuL template
  • 带动态元素的 WPF 启动屏幕。如何?

    我是 WPF 新手 我需要一些帮助 我有一个加载缓慢的 WPF 应用程序 因此我显示启动屏幕作为权宜之计 但是 我希望能够在每次运行时更改屏幕 并在文本区域中显示不同的引言 这是一个生产力应用程序 所以我将使用非愚蠢但激励性的引言 当然 如
  • 将多个表映射到实体框架中的单个实体类

    我正在开发一个旧数据库 该数据库有 2 个具有 1 1 关系的表 目前 我为每个定义的表定义了一种类型 1Test 1Result 我想将这些特定的表合并到一个类中 当前的类型如下所示 public class Result public
  • 重载<<的返回值

    include
  • 垃圾收集器是否在单独的进程中运行?

    垃圾收集器是否在单独的进程中启动 例如 如果我们尝试测量某段代码所花费的进程时间 并且在此期间垃圾收集器开始收集 它会在新进程上启动还是在同一进程中启动 它的工作原理如下吗 Code Process 1 gt Garbage Collect
  • 什么时候虚拟继承是一个好的设计? [复制]

    这个问题在这里已经有答案了 EDIT3 请务必在回答之前清楚地了解我要问的内容 有 EDIT2 和很多评论 有 或曾经 有很多答案清楚地表明了对问题的误解 我知道这也是我的错 对此感到抱歉 嗨 我查看了有关虚拟继承的问题 class B p
  • 覆盖子类中的字段或属性

    我有一个抽象基类 我想声明一个字段或属性 该字段或属性在从该父类继承的每个类中具有不同的值 我想在基类中定义它 以便我可以在基类方法中引用它 例如覆盖 ToString 来表示 此对象的类型为 property field 我有三种方法可以
  • 如何使用 C# / .Net 将文件列表从 AWS S3 下载到我的设备?

    我希望下载存储在 S3 中的多个图像 但目前如果我只能下载一个就足够了 我有对象路径的信息 当我运行以下代码时 出现此错误 遇到错误 消息 读取对象时 访问被拒绝 我首先做一个亚马逊S3客户端基于我的密钥和访问配置的对象连接到服务器 然后创
  • 如何将带有 IP 地址的连接字符串放入 web.config 文件中?

    我们当前在 web config 文件中使用以下连接字符串 add name DBConnectionString connectionString Data Source ourServer Initial Catalog ourDB P
  • C# 成员变量继承

    我对 C 有点陌生 但我在编程方面有相当广泛的背景 我想做的事情 为游戏定义不同的 MapTiles 我已经像这样定义了 MapTile 基类 public class MapTile public Texture2D texture pu
  • 哪种 C 数据类型可以表示 40 位二进制数?

    我需要表示一个40位的二进制数 应该使用哪种 C 数据类型来处理这个问题 如果您使用的是 C99 或 C11 兼容编译器 则使用int least64 t以获得最大的兼容性 或者 如果您想要无符号类型 uint least64 t 这些都定
  • Windows 和 Linux 上的线程

    我在互联网上看到过在 Windows 上使用 C 制作多线程应用程序的教程 以及在 Linux 上执行相同操作的其他教程 但不能同时用于两者 是否存在即使在 Linux 或 Windows 上编译也能工作的函数 您需要使用一个包含两者的实现
  • C++ 中类级 new 删除运算符的线程安全

    我在我的一门课程中重新实现了新 删除运算符 现在我正在使我的代码成为多线程 并想了解这些运算符是否也需要线程安全 我在某处读到 Visual Studio 中默认的 new delete 运算符是线程安全的 但这对于我的类的自定义 new
  • 如何防止用户控件表单在 C# 中处理键盘输入(箭头键)

    我的用户控件包含其他可以选择的控件 我想实现使用箭头键导航子控件的方法 问题是家长控制拦截箭头键并使用它来滚动其视图什么是我想避免的事情 我想自己解决控制内容的导航问题 我如何控制由箭头键引起的标准行为 提前致谢 MTH 这通常是通过重写

随机推荐

  • 如何在 OCR 认知中使用 application/octet-stream 发送图像

    您好 我正在尝试使用 Microsoft 的 OCR API 它期望内容类型应用程序 八位字节流和正文 发布二进制文件 我尝试将图像作为 Base64 二进制 发送 只是二进制 但是它不起作用 有人知道这张图片需要如何发送吗 文档链接 ht
  • 为什么 Path.GetDirectoryName 函数必须依赖于 260 个字符的限制

    public static void Main testing file name var fileName server7 EmailAttachments myfolder abc 2012 1126 e85c6b82 edc5 4ce
  • 使用简单 HTML DOM 循环遍历表格

    我正在使用 Simple HTML DOM 从 HTML 文档中提取数据 但有几个问题需要帮助 在以以下开头的行上if td gt find a 我想分别提取href和锚节点的内容 并将它们放在单独的变量中 然而 该代码不起作用 请参阅下面
  • 如何防止在文本字段中输入特定字符?

    我想知道如何阻止在 UITextfield 中输入某些字符 例如 如果我不希望在此文本字段中键入字母 A G P Q X 但允许其余字母 我对此很陌生 感谢您的帮助 您需要为此使用 UITextViewDelegate 在委托方法之一中捕获
  • 数字格式,写1e-5而不是0.00001

    我用过read table读取包含数字 例如 0 00001 的文件 当我写回它们时write table这些数字显示为 1e 5 如何保留旧格式 我只想改变scipen呼叫前的选项write table 请注意 这也会改变打印到控制台时数
  • Eclipse 中的 ESlint

    我在工作中得到了一个 Web 项目 其中有一个 eslintrc 文件 并被告知使用它 我认为这会强制执行代码样式 听起来是个好主意 但我以前从未这样做过 我刚刚切换到 Eclipse Neon 但我找不到有关如何使用它的教程 我确实发现了
  • HTTP 状态 500 - 过滤器执行引发异常 - doFilter 和 invokeDelegate 重复

    我正在使用 Spring MVC 4 2 5 和 Spring Security 4 1 3 来开发 Web 应用程序 当我尝试将后者合并到我的 mvc 项目中时 我开始遇到问题 目前 经过多次尝试 我在 localhost 8080 Be
  • Google 搜索 API 网站限制

    根据 Google 自定义搜索 API 文档 http code google com apis customsearch docs start html sites http code google com apis customsear
  • Node.js 的编码错误

    我正在用node js 重写一个小的python 脚本 原来的脚本是这样工作的 coding utf 8 import urllib import httplib import json def rpc url args try post
  • boost::asio 干净地断开连接

    有时 boost asio 似乎在我想要之前断开连接 即在服务器正确处理断开连接之前 我不确定这是怎么可能的 因为客户端似乎认为它完全发送了消息 但是当服务器发出错误时 它甚至没有读取消息头 在测试期间 这种情况可能只发生五分之一 服务器收
  • C++ 如何生成随机路径

    我正在尝试编写一个函数 可以为给定的二维点数组 x y 生成随机路径 现在 该路径有一些我希望它满足的要求才能使其有效 路径cannot 是从点开始的一条直线A to B 自行返回但可以倒退 如下所示 平行 沿着自身运行 我还想确保路径从左
  • android尺寸之间的区别:pt和dp

    文档称 160 dp 与密度无关 等于 1 英寸 72 pt 也是 1 英寸 所以我不明白为什么 android 定义 dp 测量 而它似乎与点一样工作 有人能解释一下吗 如果可以使用 pt 为什么还要使用 dp Android 文档曾经错
  • javax.faces.component.StateHolderSaver 可能存在内存泄漏

    我们最近将一个应用程序从 Jboss EAP 6 1 迁移到 7 1 我们的应用程序随机开始进入完整的 GC 死亡螺旋 平均时间 12 秒停止世界 并在生产环境中耗尽内存 我们从 Jboss EAP 6 1 迁移到 7 1 Java从7到8
  • SQLite“插入或替换为”不起作用

    我必须在 sqlite 中编写一个查询来更新记录 如果存在 或插入它 如果记录尚不存在 我看过的语法INSERT OR REPLACE INTO from here https stackoverflow com questions 225
  • 隐藏散点图中绘制线上方的所有点

    绘制 2 个星系等效宽度比列表 我将它们相互绘制 然后我想消除该线上方的所有点y 0 61 x 0 05 1 3这样图中就只剩下下面的点了 这是我到目前为止所拥有的 我已经查看了堆栈溢出 但不知道如何实现这一点 注 我只想要上面的几点y n
  • 如何动态添加类方法?

    使用 Objective C Runtime 如何添加方法 layerClass给私人UIGroupTableViewCellBackground类 不是它的超类 UIView 注意 这仅用于测试 看看如何UITableViewStyleG
  • python:从字典中创建直方图

    我是 python 新手 正在学习如何以正确的方式做事 我有字典列表d 每个字典代表用户 包含user id 年龄等信息 这个列表d可以包含代表同一用户的多个字典 但信息略有不同 这对我的目的来说并不重要 我想创建直方图来显示有多少用户d与
  • Java 中是否有类似于 C# 匿名类型的功能?

    我想知道 Java 中是否存在类似于 C 匿名类型的类似功能 var a new Count 5 Message A string 或者这个概念违背了Java范式 EDIT 我想使用Hashable Java 中的情况有些类似 不 没有同等
  • LinkedIn iOS SDK 捆绑包后缀

    因此 我的 LinkedIn 应用帐户上有多个捆绑包标识符 对于其中每一个 我还创建了一个 URL 后缀方案 我设置 URL 类型的方式就像li appID suffix where appID 是 LinkedIn 上提供的应用程序 ID
  • 强制 Linq 不延迟执行

    其实这个问题和这篇文章是同一个问题 如何确保 LINQ 查询在 DAL 中调用时执行 而不是以延迟方式执行 https stackoverflow com q 1013201 75642 但既然他没有解释why他想要它 这个问题似乎被忽略了