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)