1

我有一个简单的任务 - 从 SQL 表中读取数据,处理它,一旦完成 - 更新数据库中的一个字段(设置处理=真),所以每条记录应该只处理一次。

你能告诉我,我可以用什么技术来做多线程?这意味着,在多个线程中从表中读取数据。

4

2 回答 2

2

如果您想在多个线程中读取数据而不重叠,那么您可以尝试分页。您可以让每个线程读取不同的页面。例如,您可以让第一个线程读取前 20 条记录,处理其中的每条记录,然后为每条记录设置 processes=true,而第二个线程对接下来的 20 条记录执行相同的操作,依此类推。

查看此链接以获取有关在多个线程中分页的更多信息。 http://ericniemiec.wordpress.com/2010/06/10/paging-records-in-sql-server-2008-for-processing-database-records-on-different-threads-in-c/

于 2013-03-03T19:30:29.203 回答
1

如果你使用 ef 并使用 DataContext 你应该知道 DataContext 不是线程安全的。像 MsSQL 这样的数据库管理系统是线程安全的。我更喜欢你读这个问题

于 2013-03-03T18:57:47.920 回答