我定义了一个方法,方法主要是修改数据库里面的一条记录。很多地方都调用这个方法,如果有连个地方同时调用该方法,而且修改的是同一条记录,这时候改怎么办。我想要的是在某一时刻在调用这个方法,不能多个地方修改同一条记录。给位给点意见,代码也可以

解决方案 »

  1.   

    给update 的方法加上一个TRANS即可,第一次修改未完成,第二次修改将被搁置
      

  2.   

    这个是多线程中同步造成的?那就加锁呀。简单的方法是用一个Lock()来实现。或者你直接用Monitor来实现也行
      

  3.   


    异步和多线程,大体差不多。不过你这种操作数据库的,最好还是用异步模式好。
    首先明白,cpu能执行线程的数量是有限
    异步也是新开一个线程处理,但是当开始调用后,就把那个线程返回给cpu了。等执行完后,在随机获取一个线程完成操作。这样,CPU同样时间里可以处理更加多的任务。而多线程,从开始到结束始终占一个线程,,相对cpu能执行的任务就变少了。但是,多线程感觉要简单些,所以,若你程序不是很复杂,线程数量比较少的话,可以用这个。