解决方案 »

  1.   

           
           lock(a)
            {
               objectA a = getObject(); //这是从数据库里查出来的一个对象.状态  a.State = 1;
                if(a.State == 2)
                       return null;
                 //这里会执行更新数据库的操作,把 a对象对应的记录状态改为 2
                 ..................................................
                //然后我改变对象 a 的状态值为 2
                 a.State = 2;
                 return new returnData();
            }
      

  2.   

    a必须放在lock的外面,不过我想可不可以在 lock 外new一a的对象,然后在里边给它赋值
      

  3.   

    lock对象锁,顾名思义 就是 锁住某个对象····
    为什么要锁住,当然是多个线程会同同时使用的时候···
      

  4.   

    你那个是局部变量,lock没用的,要lock全局的static变量