【发布时间】:2009-06-30 14:38:26
【问题描述】:
其实这和这个帖子是同一个问题:
How can I make sure my LINQ queries execute when called in my DAL, not in a delayed fashion?
但由于他没有解释为什么他想要它,这个问题似乎已经被忽略了一点。这是我的类似但更好解释的问题:
我有两种类型的少量线程(暂时忽略 UI 线程)。有一个“数据收集”线程类型和一个“计算”线程类型。数据收集线程很慢。有相当多的数据需要从各个地方进行筛选。计算线程相对较快。到目前为止的设计模型是发送数据收集线程以查找数据,并在完成后将数据传递给计算。
当我在 Linq 中对我的数据收集进行编码时,我最终将一些缓慢的返回到我的计算线程中。现在有一些数据元素在计算过程中使用之前无法完全解析——这是一个问题。
我想强制 Linq 在给定时间完成它的工作(语句结束?方法结束?“请结束,该死”方法调用),这样我就知道我以后不会为此付费.将“.ToList()”添加到 Linq 的末尾是 1. 尴尬,2. 感觉就像装箱的东西,无论如何都要在另一个线程中拆箱。
【问题讨论】:
-
记住:查询理解的值是一个代表查询本身的对象,而不是它的结果。如果您想要结果的快照,您将不得不以某种方式询问查询对象(然后忍受在您使用它们时它们可能已经过时的事实。)“ToList”似乎是最简单的方法。
标签: c# linq delayed-execution