CComCriticalSection 클래스
이 클래스는 중요한 섹션 개체의 소유권을 가져오고 해제하는 메서드를 제공합니다.
구문
class CComCriticalSection
멤버
공용 생성자
속성 | 설명 |
---|---|
CComCriticalSection::CComCriticalSection | 생성자입니다. |
공용 메서드
이름 | 설명 |
---|---|
CComCriticalSection::Init | 중요한 섹션 개체를 만들고 초기화합니다. |
CComCriticalSection::Lock | 중요한 섹션 개체의 소유권을 가져옵니다. |
CComCriticalSection::Term | 중요한 섹션 개체에서 사용하는 시스템 리소스를 해제합니다. |
CComCriticalSection::Unlock | 중요한 섹션 개체의 소유권을 해제합니다. |
공용 데이터 멤버
속성 | 설명 |
---|---|
CComCriticalSection::m_sec | CRITICAL_SECTION 개체입니다. |
설명
CComCriticalSection
는 CComAutoCriticalSection 클래스와 유사합니다. 단, 중요한 섹션을 명시적으로 초기화하고 해제해야 합니다.
일반적으로 CriticalSection이라는 이름을 통해 typedef
사용합니다CComCriticalSection
. CComMultiThreadModel를 사용하는 경우 이 이름은 CComCriticalSection
를 참조합니다.
직접 호출 Unlock
Lock
하는 것보다 이 클래스를 사용하는 더 안전한 방법은 CComCritSecLock 클래스를 참조하세요.
요구 사항
헤더: atlcore.h
CComCriticalSection::CComCriticalSection
생성자입니다.
CComCriticalSection() throw();
설명
m_sec 데이터 멤버를 NULL로 설정합니다.
CComCriticalSection::Init
Win32 함수 InitializeCriticalSection을 호출합니다. 이 함수는 m_sec 데이터 멤버에 포함된 중요한 섹션 개체를 초기화합니다.
HRESULT Init() throw();
Return Value
성공, E_OUTOFMEMORY 또는 실패 E_FAIL S_OK 반환합니다.
CComCriticalSection::Lock
스레드가 m_sec 데이터 멤버에 포함된 중요한 섹션 개체의 소유권을 가져올 때까지 기다리는 Win32 함수 EnterCriticalSection을 호출합니다.
HRESULT Lock() throw();
Return Value
성공, E_OUTOFMEMORY 또는 실패 E_FAIL S_OK 반환합니다.
설명
중요 섹션 개체는 먼저 Init 메서드를 호출하여 초기화해야 합니다. 보호된 코드 실행이 완료되면 스레드는 Unlock를 호출하여 중요한 섹션의 소유권을 해제해야 합니다.
CComCriticalSection::m_sec
모든 CComCriticalSection
메서드에서 사용되는 중요한 섹션 개체를 포함합니다.
CRITICAL_SECTION m_sec;
CComCriticalSection::Term
Win32 함수 DeleteCriticalSection을 호출합니다. 이 함수는 m_sec 데이터 멤버에 포함된 중요한 섹션 개체에서 사용하는 모든 리소스를 해제합니다.
HRESULT Term() throw();
Return Value
S_OK 반환합니다.
설명
Term
호출된 후에는 더 이상 동기화에 중요한 섹션을 사용할 수 없습니다.
CComCriticalSection::Unlock
Win32 함수 LeaveCriticalSection을 호출합니다. 이 함수는 m_sec 데이터 멤버에 포함된 중요한 섹션 개체의 소유권을 해제합니다.
HRESULT Unlock() throw();
Return Value
S_OK 반환합니다.
설명
먼저 소유권을 얻으려면 스레드가 Lock 메서드를 호출해야 합니다. 각 호출에는 Lock
중요한 섹션의 소유권을 해제하기 위한 Unlock
해당 호출이 필요합니다.