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