【发布时间】:2016-08-17 13:24:00
【问题描述】:
我想通过 SqlDataReader 填充 DataTable 对象并能够中断操作(例如,在用户想要取消长时间运行的查询的情况下通过 u/i)。
不幸的是,我没有看到DataTable.Load() 的任何重载需要CancellationToken。
有没有一种干净的方法来实现这一点?
(我唯一的想法是使用线程并查看Thread.Interrupt() 是否可以解决问题,如果没有,则使用Thread.Abort(),但这似乎很不友好)。
【问题讨论】:
-
填充数千行需要几毫秒。而不是这样,您可以将条件放在查询本身中。
-
@DheerajRoy 你能解释一下吗?我的查询需要很长时间才能返回包括元数据在内的任何内容。我如何在查询中输入“条件”?
-
我认为您应该通过 SqlDataAdapter 查看 DataTable RowChanged。
标签: c# sql multithreading datatable