다음을 통해 공유


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 해당 호출이 필요합니다.

참고 항목

CComFakeCriticalSection 클래스
클래스 개요
CComCritSecLock 클래스