做一个winform,用多线程取数据库里的数据进行处理,可是会重复读数据,怎么办?

解决方案 »

  1.   

    记录中增加一个标记字段 
      flag=0   未读取
      flag=1   已读取   
      flag=2   结束 或是每个线程只处理固定的一部分记录 比如根据id来分范围
      

  2.   

     可以在数据库做文章,比如我读的时候把这条数据 for locked 那别的就读不进来了。
      

  3.   

    查出的大量数据放在那里再处理?DataSet?
      

  4.   

    用DataReader把数据放到ArrayList,然后多线程处理ArrayList?
      

  5.   

    一般数据都直接装载到DataTable里面,如果需要实时更新,也可以使用单一的后台线程遍历DataReader,使用委托更新用户界面,这样既不会界面假死,数据也能够同时在后台处理。