다음을 통해 공유


CCriticalSection::Lock

중요 섹션 개체에 액세스 하려면이 멤버 함수를 호출 합니다.

BOOL Lock( ); 
BOOL Lock(
   DWORD dwTimeout 
);

매개 변수

  • dwTimeout
    Lock이 매개 변수 값을 무시합니다.

반환 값

함수가 성공 하면 0이 아닌. 그렇지 않으면 0입니다.

설명

Lock중요 섹션 개체에 신호가 전달 될 때까지 반환 되지 않는 차단 호출 됩니다 (사용할 수 있습니다).

필요한 경우 일정 시간된 대기 수는 CMutex 대신 개체는 CCriticalSection 개체.

경우 Lock 메모리 예외는 필요한 시스템 메모리 할당에 실패 (형식의 CMemoryException) 자동으로 throw 됩니다.

예제

공유 리소스의 액세스를 제어 하 여 임계 중첩된 방법을 보여 주는이 예제 (정적 _strShared 개체)는 공유를 사용 하 여 CCriticalSection 개체입니다.SomeMethod 공유 리소스에 안전 하 게 업데이트 함수를 보여 줍니다.

//Definition of critical section class
class CMyCritSectClass
{
   static CString _strShared; //shared resource
   static CCriticalSection _critSect;
public:
   CMyCritSectClass(void) {}
   ~CMyCritSectClass(void) {}
   void SomeMethod(void); //locks, modifies, and unlocks shared resource
};

//Declaration of static members and SomeMethod
CString CMyCritSectClass::_strShared;
CCriticalSection CMyCritSectClass::_critSect;

void CMyCritSectClass::SomeMethod()
{
   _critSect.Lock();
   if (_strShared == "")
      _strShared = "<text>";
   _critSect.Unlock();
}

요구 사항

헤더: afxmt.h

참고 항목

참조

아니오 클래스

계층 구조 차트

CSingleLock::Lock