请问我在类里定一个了一个 CCriticalSection cc;
例如 class a
   {
     private
      CCriticalSection cc
      integer a1;
     public 
      geta1()
      seta1(a2)
    }  
     
  integer a:geta1()
     {   
         cc.lock()
         return a1
         cc.unlock() //都已经返回了,此句是不是执行不到阿。
      }          这里加锁该怎么加,如果不用unlock,在函数退出时,是不是自动unlock()阿
如果放在return 后面,return  返回,下面锁是不是解不开了  谁能告我啊

解决方案 »

  1.   

    看起来是这样 办法是getal里用一个局部变量 
      Lock; temp = al; Unlock; return temp;
    不过如果只是这么简单的话应该不需要锁定
      

  2.   

    可以这么干
      Lock;
      temp = al;
      Unlock;
      return temp;
    不过如果只是这么简单的话应该不需要锁定的
      

  3.   

    CSingleLock singleLock(&m_CritSection);
    singleLock.Lock();
    // resource locked
    //.usage of shared resource...
    singleLock.Unlock();超出作用域的话,会自动unlock