我有几个LINQ查询将基于各种过滤器来流失记录(最多一百万个),并根据生成的过滤行项目上的特定列的值修改控件。我想实现线程,但我使用LINQ来执行查询,查询本身是延迟的来源,所以我相信进度条无论如何都会立即从0跳到100%。有办法克服这个问题吗?
一个具体示例是,Windows窗体组合框项目是根据另一个ComboBox中用户选择的特定列的不同值填充的。这些项用于动态构建另一个linq查询,这些查询用于自定义动态图表工具。
答案 0 :(得分:3)
使用Skip
和Take
一次只能加载一些记录。如果提前获得Count
,则可以在每次查询完成后推进进度条。您需要在后台线程中执行所有这些操作以保持UI响应,以便进度条显示更新。
答案 1 :(得分:2)
我想实现线程,但我使用LINQ来执行查询,查询本身就是延迟的来源,所以我相信进度条无论如何都会立即从0跳到100%。
所以主要部分是在Db上运行的查询。这里没有反馈,你必须假装它。你不会是唯一一个这样做的人。
进度条不是(打算是)精确的工具,而是关于用户安抚。