如果你使用传统关系数据库,这不可能简单地并发多线程执行。 关系数据库要锁住 Checked 表的查询功能(好在你是直接指定了条件 SourceId=....,如果更复杂一点的条件将更容易死锁)。而且每一条语句单独作为一个数据库事务、启动了一个复杂的事务处理过程。 正确的做法,是将每(例如)200条“delete Checked where SourceId =...... ; ”语句合并到一个显式的 DbTransaction 中去执行,每一批处理才需要数据库端启动一个事务。然后使用单线程循环执行就可以了。
110,539
社区成员
642,577
社区内容
加载中
让您成为最强悍的C#开发者
试试用AI创作助手写篇文章吧