CComMultiThreadModel::AutoCriticalSection

typedef CComAutoCriticalSection AutoCriticalSection;

주의

Typedef 이름 AutoCriticalSection 참조 클래스 CComAutoCriticalSection를 취득 하 고 중요 섹션 개체의 소유권을 공개에 대 한 메서드를 제공 하는 CComMultiThreadModel를 사용 하는 경우。

CComSingleThreadModel 및 CComMultiThreadModelNoCS 에 AutoCriticalSection에 대 한 정의가 포함 되어 있습니다. 다음 표에서 스레딩 모델 클래스와 AutoCriticalSection 에 의해 중요 섹션 클래스 참조의 관계를 보여 줍니다.:

클래스에 정의 된 클래스 참조
CComMultiThreadModel CComCriticalSection
CComSingleThreadModel CComFakeCriticalSection
CComMultiThreadModelNoCS CComFakeCriticalSection

AutoCriticalSection, 이외에 typedef 이름 CriticalSection을 사용할 수 있습니다. 지정 하지 않아야 AutoCriticalSection 전역 개체 또는 정적 클래스 멤버에는 CRT 시작 코드를 제거 하려는 경우。

예제

다음 코드는 CComObjectRootEx 에서 가져온。

templatelt; ThreadModel 클래스 >
CComObjectRootEx 클래스: 공용 CComObjectRootBase
{
공개:
 ? typedef ThreadModel _ThreadModel;
 ? typedef _ThreadModel::AutoCriticalSection _CritSec;

ULONG InternalAddRef)
 ? {
 ???? ...
 ???? 반환 _ThreadModel::Increment(&m_dwRef);
 ? }
 ? ...
 ? void 잠금 () {m_critsec.잠금 (); }
 ? ...

개인:
 ? _CritSec m_critsec;

}

다음 표에서 ThreadModel 템플릿 매개 변수 및 응용 프로그램에서 사용 하는 스레딩 모델에 따라 InternalAddRef 및 잠금 방법의 결과 보여:

ThreadModel = CComObjectThreadModel

단일 또는 아파트 무료
InternalAddRef 증분 스레드로부터 안전 하지 않습니다. 증가 스레드로부터 안전。
잠금 아무것도; 거기 아무 임계를 잠그려면。 중요 섹션이 잠겨。

ThreadModel = CComObjectThreadModel::ThreadModelNoCS

단일 또는 아파트 무료
InternalAddRef 증분 스레드로부터 안전 하지 않습니다. 증가 스레드로부터 안전。
잠금 아무것도; 거기 아무 임계를 잠그려면。 아무것도; 거기 아무 임계를 잠그려면。

CComMultiThreadModel 개요 |nbsp; 클래스 멤버(&N)

참고 항목nbsp;CComObjectThreadModel, CComGlobalsThreadModel, CComMultiThreadModel::ThreadModelNoCS(&N)

Index